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

Вид: 18761|Відповідь: 1

[WCF/Веб-сервіси] Максимальна квота на розмір повідомлення для вхідних повідомлень (65536) була перевищена. Щоб збільшити квоту, використовуйте ...

[Копіювати посилання]
Опубліковано 24.04.2017 17:02:30 | | |
Максимальна квота на розмір повідомлення для вхідних повідомлень (65536) була перевищена. Щоб збільшити квоту, використовуйте властивість MaxReceivedMessageSize на відповідному елементі зв'язування.


При використанні WCF я стикаюся з такими проблемами:


Максимальна квота на розмір повідомлення для вхідних повідомлень (65536) була перевищена. Щоб збільшити квоту, використовуйте властивість MaxReceivedMessageSize на відповідному елементі зв'язування.

Опис проблеми:

Коли клієнт викликає WCF і повертає велику кількість даних, з локальною мережею немає проблем (клієнт знайшов проблему з машиною на місці, точна причина невідома). Є проблема з публікацією в екстранеті.


Інформація про виняток, яку фіксує VS2012 Debug, така: виникла помилка під час передачі даних через HTTP-канал (дані не могли бути прочитані з транспортного з'єднання: з'єднання було закрите). )。

Виняток, який повертає інструмент WCFStorm: Максимальна квота на розмір повідомлення для вхідних повідомлень (65536) була перевищена. Щоб збільшити квоту, використовуйте властивість MaxReceivedMessageSize на відповідному елементі зв'язування.

До помилки і сервер, і клієнт додали такі налаштування:


Додайте наступний код на стороні сервера, щоб розв'язати проблему:

Сподіваюся, це допоможе вам, хто стикається з такою ж проблемою.

Інші рішення:

Після прочитання допису @sunny007sun http://bbs.csdn.net/topics/360255080 року було знайдено рішення http://www.cnblogs.com/happyhippy/archive/2011/07/02/2096482.html його запису (блог).
web.config, автоматично згенерований Silverlight, не містить конфігураційної інформації для сервісів і має бути доданий сюди
    <services>
      <service behaviorConfiguration="MyBehaviour" name="WcfService1.Service1">
        <адреса кінцевої точки="" binding="basicHttpBinding" bindingConfiguration="NewBinding0"
          contract="WcfService1.IService1" />
        <адреса кінцевої точки="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
      </service>
    </services>
Насправді існує різниця між service.name та endpoint.contract, контракт — це протокол, що відповідає ServiceContract у рамках проєкту WCF, тобто інтерфейсу IService1, а service відповідає конкретному виклику svc, тобто Service1.

Поки що проблему вирішено, дякую @sunny007sun за 11 років публікацій і блогінгу.





Попередній:.NET/C# Інструмент налагодження інтерфейсу Huawei NB-IoT [Вихідний код]
Наступний:Функція подвійного натискання правої миші в Winform ListView
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com