我有一个单元测试,它将一个中等大的对象发送到WCF服务。如果我为该参数传递null,一切正常。当我发送一个填充的对象时,我得到一个HTTP 400响应。
WCF跟踪显示此错误:
传入邮件的最大邮件大小限额(65536) 超出。
但是,我已经在app.config中为单元测试项目调整了大小配置参数,如下所示:
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyAppService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="200000000" maxBufferPoolSize="200000000" maxReceivedMessageSize="200000000"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
我的配置中缺少什么来将允许的邮件大小提高到错误邮件中看到的65536以上?
更新:
Web服务主机的web.config文件还将maxReceivedMessageSize设置为一个较大的值(我认为):
<binding name="basicHttpBindingConfig" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>
答案 0 :(得分:1)
如果我理解你的问题,你在单元测试的app.config中增加了'maxReceivedMessageSize'的大小。实际上,您应该在您从单元测试代码调用的Web服务的app.config / web.config中进行此更改。如果您在IIS中托管Web服务,那么它将是web.config。如果您在Windows服务中托管它,那么您需要在app.config中进行更改(它将被移动到bin文件夹中的.exe.config文件。