Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 16868|Ответ: 0

[WCF/Веб-сервисы] Операция 'xxx' не могла быть загружена, потому что у неё есть параметр или retu...

[Скопировать ссылку]
Опубликовано 20.07.2016 10:59:59 | | |
Операция '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.

Однако интересно, что если есть возвратная стоимость???? Решение следующее:









Предыдущий:Ошибка WCF: 413 Запрос слишком большой
Следующий:Загрузка файла реализации WCF имеет возвратное значение для демо-загрузки
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com