Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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.

Однак мені цікаво, що, якщо є прибутковість???? Розв'язок наступний:









Попередній:Помилка WCF: Запит 413 Суб'єкт занадто великий
Наступний:Завантаження файлу реалізації WCF має значення повернення для демо-завантаження
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com