Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 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 type.

Въпреки това, чудя се какво ако има възвръщаема стойност???? Решението е следното:









Предишен:Грешка на WCF: 413 Заявка на ентитета е твърде голяма
Следващ:Качването на файлове за реализация на WCF има връщаща стойност за демо изтегляне
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com