WCF maxReceivedMessageSize, не будучи считанным из конфигурации

'Сам' ссылка на экземпляр класса

class foo:
    def bar(self):
            print "hi"

Теперь, мы можем создать экземпляр нечто и назвать метод на нем, сам, параметр добавляется Python в этом случае:

f = foo()
f.bar()

, Но это может быть передано в также, если вызов метода не находится в контексте экземпляра класса, код ниже делает то же самое

f = foo()
foo.bar(f)

Интересно, имя переменной 'сам' является просто конвенцией. Ниже определения будет работать точно то же.. Сказав, что это очень сильная конвенция , которая должна сопровождаться всегда , но это действительно говорит что-то о гибкой природе языка

class foo:
    def bar(s):
            print "hi"
16
задан Colin Desmond 27 August 2009 в 20:40
поделиться

3 ответа

Есть еще настройки :-) Попробуйте "maxBufferPoolSize" и «maxBufferSize» в теге .

Но самая большая проблема заключается в том, что ваша конечная точка не ссылается на эту конфигурацию привязки!

<endpoint address="" 
          binding="wsHttpBinding" contract="Core.TOAService.ITOAService">

Вам нужно добавить ссылку на нее, чтобы она стала полезной - просто назвать ее "по умолчанию" нельзя. работа .....

<endpoint address="" 
          binding="wsHttpBinding" 
          bindingConfiguration="default"
          contract="Core.TOAService.ITOAService">

Вы опережаете свое время ;-) В WCF 4 (с .NET 4.0 - где-то в конце этого года) вы сможете определять «конфигурации привязки по умолчанию» без необходимости явным образом назовите их и сделайте ссылку на них - но пока вам нужно создать связь между вашей конечной точкой и ее привязкой и любой имеющейся у вас конфигурацией привязки (или поведения)!

28
ответ дан 30 November 2019 в 16:00
поделиться

Есть несколько мест, где вам нужно установить размер. В вашем случае я думаю, что вам нужно добавить квоты чтения. Вот пример:

  <basicHttpBinding>
    <binding name="httpBasicBinding_Service" closeTimeout="00:03:00"
      openTimeout="00:03:00" receiveTimeout="00:10:00" sendTimeout="00:03:00"
      maxBufferSize="2000001"
      maxBufferPoolSize="2000001" maxReceivedMessageSize="2000001">
      <readerQuotas maxDepth="2000001" maxStringContentLength="2000001"
        maxArrayLength="2000001" maxBytesPerRead="2000001" maxNameTableCharCount="2000001" />
    </binding>
  </basicHttpBinding>
1
ответ дан 30 November 2019 в 16:00
поделиться

Если вы все еще получаете это сообщение об ошибке при использовании тестового клиента WCF, потому что у клиента есть отдельный параметр MaxBufferSize .

Чтобы исправить проблему:

  1. Щелкните правой кнопкой мыши узел Файл конфигурации в нижней части дерева
  2. Выберите Редактировать с помощью SvcConfigEditor

Появится список редактируемых настроек, включая MaxBufferSize.

Примечание. Автоматически созданные прокси-клиенты также устанавливают для MaxBufferSize значение 65536 по умолчанию.

16
ответ дан 30 November 2019 в 16:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: