Как настроить размер сообщения для веб-роли WCF (в настоящее время получен код ошибки HTTP 500) - PullRequest
1 голос
/ 15 декабря 2010

Спасибо всем!

Мы смогли решить эту проблему, просто изменив имя элемента привязки с "basicHttpBinding" на "webHttpBinding".

Глупо, я знаю ..


Hello

Я пытаюсь реализовать веб-роль с использованием WCF, которая будет получать объекты JSON и сохранять их в хранилище Azure. Во время интеграционных тестов я получил код ошибки 400. Затем я обнаружил, что WCF имеет очень маленький размер сообщения (~ 65535), и что мне нужно настроить его, чтобы он был больше. Конфигурация, которую я сейчас использую, вызывает код ошибки 500 при каждой попытке отправить HTTP-запрос в мою службу (запрос не достигает моего кода).

Файл Web.config, который я использую, выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

  <system.web>

    <compilation debug="true" targetFramework="4.0" />

  </system.web>

  <system.serviceModel> 

    <diagnostics>

      <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" maxSizeOfMessageToLog="5000000" />

      <endToEndTracing activityTracing="false" />

    </diagnostics>

    <services>

      <service name="MyWebRole.RequestHandler" behaviorConfiguration="RequestHandlerbehavior">

        <endpoint address="http://localhost:9001/" binding="basicHttpBinding" bindingConfiguration="conf" name="MyDefaultEndpoint"

                                contract="MyWebRole.IRequestHandler" />

      </service>

    </services>   

    <bindings>

      <basicHttpBinding>

        <binding name="conf" maxBufferSize="5000000" maxReceivedMessageSize="5000000" useDefaultWebProxy="true">

          <readerQuotas maxDepth="5000000" maxStringContentLength="5000000" maxArrayLength="5000000" maxBytesPerRead="5000000" maxNameTableCharCount="5000000" />

        </binding>

      </basicHttpBinding>

    </bindings>

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" />

    <behaviors>

      <serviceBehaviors>

        <behavior name="RequestHandlerbehavior">

          <serviceMetadata httpGetEnabled="true" />

          <serviceDebug includeExceptionDetailInFaults="true" />

        </behavior>

      </serviceBehaviors>

    </behaviors>

  </system.serviceModel>

  <system.webServer>

    <modules runAllManagedModulesForAllRequests="true" />

  </system.webServer>

</configuration>

Не могли бы вы помочь мне передать мои запросы в службу WCF?

Спасибо!

1 Ответ

0 голосов
/ 11 февраля 2011

Вы пытались увеличить размер получаемого сообщения в вашей привязке? Такие как ...

MaxReceivedMessageSize = "1048576"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...