Я получаю для TransferMode.Buffered, MaxReceivedMessageSize и MaxBufferSize должны быть одинаковые значения - PullRequest
4 голосов
/ 17 марта 2012

Вот мой Web.config в Windows Azure Services Project

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <configSections>
  </configSections>
  <!--  To collect diagnostic traces, uncomment the section below or merge with existing system.diagnostics section.
        To persist the traces to storage, update the DiagnosticsConnectionString setting with your storage credentials.
        To avoid performance degradation, remember to disable tracing on production deployments.
  <system.diagnostics>     
    <sharedListeners>
      <add name="AzureLocalStorage" type="NutriLeaf.Services.AzureLocalStorageTraceListener, NutriLeaf.Services"/>
    </sharedListeners>
    <sources>
      <source name="System.ServiceModel" switchValue="Verbose, ActivityTracing">
        <listeners>
          <add name="AzureLocalStorage"/>
        </listeners>
      </source>
      <source name="System.ServiceModel.MessageLogging" switchValue="Verbose">
        <listeners>
          <add name="AzureLocalStorage"/>
        </listeners>
      </source>
    </sources> 
   </system.diagnostics> -->

  <system.diagnostics>
    <trace>
      <listeners>
        <add type="Microsoft.WindowsAzure.Diagnostics.DiagnosticMonitorTraceListener, Microsoft.WindowsAzure.Diagnostics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="AzureDiagnostics">
          <filter type="" />
        </add>
      </listeners>
    </trace>
  </system.diagnostics>

  <system.web>
    <compilation debug="true" targetFramework="4.0" />
  </system.web>




  <system.serviceModel>


    <bindings>
      <basicHttpBinding>
        <binding closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
          allowCookies="true" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="524288" maxReceivedMessageSize="2147483647"
          messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384" maxBytesPerRead="4096" maxNameTableCharCount="16384"/>
          <security mode="None">
            <transport clientCredentialType="None" proxyCredentialType="None" realm=""/>
          </security>
        </binding>
      </basicHttpBinding>
    </bindings>

    <behaviors>
      <serviceBehaviors>
        <behavior>
          <dataContractSerializer maxItemsInObjectGraph="2147483647" />
          <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
          <serviceMetadata httpGetEnabled="true" />
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="true" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
  </system.serviceModel>

  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
  </system.webServer>
    <connectionStrings>
        <remove name="LocalSqlServer" />
        <add connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" name="LocalSqlServer" providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

и вот исключение, которое я получаю на своем клиенте Windows Phone 7

Для TransferMode.Buffered значения MaxReceivedMessageSize и MaxBufferSize должны совпадать. Имя параметра: bindingElement

Я даже пытался установить TransferMode = "Streamed", но это не помогло, я получаю то же исключение. Не могли бы вы помочь мне. Я скучаю по частям файла Web.config?

Пожалуйста, помогите!

Ответы [ 2 ]

4 голосов
/ 29 марта 2012

Возможно, проблема генерируется на клиенте.Проверьте файл ServiceReferences.ClientConfig в приложении WP7 и проверьте привязки.они должны выглядеть следующим образом:

<bindings> 
    <basicHttpBinding> 
        <binding name="{YOUR SERVICE NAME HERE" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"> 
    <security mode="None" /> 
</binding> 

Необходимо убедиться, что maxBufferSize и maxReceivedMessageSize совпадают со значениями в конфигурации вашего сервера.

3 голосов
/ 30 мая 2012

Я столкнулся с той же проблемой.Я не знаю, является ли это ошибкой во время выполнения WP7 Silverlight, однако она работала правильно, если привязка была определена в коде вместо ServiceReferences.ClientConfig.Примерно так:

var client = new MyServiceClient(
    new BasicHttpBinding( BasicHttpSecurityMode.None )
    {
        MaxReceivedMessageSize = 2147483647,
        MaxBufferSize = 2147483647
    },
    new EndpointAddress( yourAddress ) );

Я пока не могу выяснить причину этого.

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