Ужасный запрос WCF BAD 400 из-за maxReceivedMessageSize по-прежнему 65536

Боже, разве ты не любишь WCF.

Я читал все возможные темы, но я действительно поправь сейчас.

Вот конфигурация WCF:


   
      
         
      
   
   
      
         
            
            
         
         
            
         
      
   
   
      
         
         
         
            
               
            
         
      
   
   
      
         
      
   

Теперь я отправляю сообщение и получаю это исключение по умолчанию (видно в файле svclog):

Максимальная квота на размер сообщения для входящих сообщений (65536) была превышено. Чтобы увеличить квоту, используйте свойство MaxReceivedMessageSize в соответствующем элементе привязки.

Сейчас четко заявляю, что должно быть 4мб.

Мой клиентский код:

TableTaskServiceClient client = 
    new TableTaskServiceClient(
          new BasicHttpBinding { MaxBufferSize = 4194304, 
                                 MaxReceivedMessageSize = 4194304 }, 
          new EndpointAddress(GetEndpointAddressString())
    );

Тем не менее, он выдает мне ошибку размера 65536. Откуда это ?? ..

Также ДЕЙСТВИТЕЛЬНО ли имеет значение, что клиент устанавливает MaxReceivedMessageSize на то же значение, что и сервер? Думаю, было бы логично, чтобы за определение длины отвечал сервер, а не клиент.

Также есть это предупреждение (обратите внимание, насколько оно полезно в том, что в нем говорится, а именно: нет информации об элементе, который переопределяется, или я что-то упускаю), может быть, именно basichttpbinding является тем, что переопределяется? но почему это должно быть? в любом случае:

[TraceRecord] Предупреждение о серьезности TraceIdentifier http://msdn.microsoft.com/ en-US / library / System.ServiceModel.OverridingDuplicateConfigurationKey.aspx Описание Система конфигурации обнаружила повторяющийся ключ в другой области конфигурации и заменяет собой более новую {{1} }} значение. AppDomain / LM / W3SVC / 11 / ROOT / TableTaskService-33-1296567 Source System.ServiceModel.Configuration.ServiceBehaviorElementCollection / -851144413 ElementName, поведение OldElementLineName 0

ОБНОВЛЕНИЕ: перенастроил и службу, и клиент:

TableTaskServiceClient client = new TableTaskServiceClient(
                        new BasicHttpBinding { 
                            MaxBufferSize = 4194304, 
                            MaxReceivedMessageSize = 4194304,
                            MaxBufferPoolSize=4194304,
                            ReaderQuotas = new XmlDictionaryReaderQuotas
                                               {
                                                   MaxArrayLength = 4194304, 
                                                   MaxBytesPerRead = 4194304, 
                                                   MaxDepth = 4194304, 
                                                   MaxNameTableCharCount = 4194304,
                                                   MaxStringContentLength = 4194304
                                               }
                        }, new EndpointAddress(GetEndpointAddressString()));

По-прежнему та же ошибка.

Если это интересно, я отправляю массив byte [] длиной 467000 ~

6
задан Valentin Kuzub 13 November 2011 в 16:29
поделиться