Операция 'xxx' нельзя было загрузить, поскольку у неё есть параметр или тип возврата типа System.ServiceModel.Channels.Message или тип, имеющий MessageContractAttribute и другие параметры разных типов. При использовании System.ServiceModel.Channels.Message или типов с MessageContractAttribute метод не должен использовать другие типы параметров. Я написал интерфейс для загрузки файлов в WCF и хочу вернуть результат загрузки, интерфейс такой:
В этот момент запуск сообщает об ошибке, если она записана следующим образом:
Ошибки также будут сообщаться при запуске!!!
Как мы уже говорили, что такое дуплексирование, значит это обмен мнениями, верно? Да, вышеуказанный метод имеет входящие параметры и значения возврата, бывают приходы и уходы, он дуплекс, почему бы и нет?
Ха-ха, проблема в том, что мы используем протокол сообщений, при этом наш метод нельзя определить случайно, используя метод протокола сообщений, если:
a. Если контракт сообщения используется как входящий параметр, может быть только один параметр, и следующие определения неверны:
void Reconcile (BankingTransaction bt1, BankingTransaction bt2);
b. Если вы не возвращаете void, если нет, то вы должны вернуть контракт на сообщение, bool UpLoadFile(TransferFileMessage tMsg). Наше определение, очевидно, не соответствует требованиям.
Так как же это решить? Нам нужно определить другой контракт на возвращение сообщений.
Грубо говоря, вы не можете использовать bool, string и т.д. в качестве возвратных значений, можно установить void no return value.
Однако интересно, что если есть возвратная стоимость???? Решение следующее:
|