WCF:如何设置MaxReceivedMessageSize配额

时间:2011-10-18 10:49:26

标签: .net asp.net wcf .net-4.0 asp.net-4.0

我有一个WCF服务。运行客户端应用程序时,我收到以下消息

  

传入邮件的最大邮件大小限额(65536)   超标。要增加配额,请使用MaxReceivedMessageSize   适当的绑定元素上的属性。

我还在客户端和服务器项目的相关配置中添加了MaxReceivedMessageSize属性。

我在客户端应用程序中的配置是:

<system.serviceModel>
    <bindings>
      <basicHttpBinding>
        <binding name="RPBasicHttpBinding" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
          <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
        </binding>
      </basicHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost:40003/PersonWcfService.svc/PersonServices"
        binding="basicHttpBinding"
        contract="RP.Common.ServiceContract.IPersonService" name="BasicHttpBinding_IPersonService">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>

我在WCF项目中的配置是:

<system.serviceModel>
    <services>
      <service name="RP.WcfService.PersonWcfService" behaviorConfiguration="RP.WcfServiceBehaviour">
        <endpoint address="PersonServices" binding="basicHttpBinding" bindingConfiguration="RPBasicHttpEndpointBinding" contract="RP.Common.ServiceContract.IPersonService" />
      </service>
    </services>
    <behaviors>
    <serviceBehaviors>
      <behavior name="RP.WcfServiceBehaviour">
        <serviceMetadata httpGetEnabled="true" />
        <serviceDebug includeExceptionDetailInFaults="true" />
      </behavior>
    </serviceBehaviors>
  </behaviors>
    <bindings>
      <basicHttpBinding>
        <binding name="RPBasicHttpEndpointBinding" allowCookies="true" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
          <readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
        </binding>
      </basicHttpBinding>
    </bindings>
  </system.serviceModel>

在其他地方我应该设置MaxReceivedMessageSize属性来增加邮件大小配额?

2 个答案:

答案 0 :(得分:2)

您是否在客户端端点配置中缺少bindingConfiguration="RPBasicHttpBinding" ...因此获取basicHttpBinding的默认配置而不是您指定的配置?

答案 1 :(得分:1)

更改服务器和使用者的配置后,请确保重新启动这些进程(重新启动服务,重新启动应用程序池等等)。

我还建议你不要在localhost下运行。 Localhost可以绕过大量设置,并且可以解决问题。