在400错误的请求

问题描述:

发送较大的物体到WCF结果我有一个单元测试,发送一个中等大的对象到WCF服务。如果我为该参数传递null,一切正常。当我发送一个填充对象时,我得到一个HTTP 400响应。在400错误的请求

WCF跟踪显示了这个错误:

The maximum message size quota for incoming messages (65536) has been exceeded.

不过,我已经拍成中的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以上?

UPDATE:

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> 

如果我正确理解你的问题,你增加了单元测试的app.config中'maxReceivedMessageSize'的大小。实际上,您应该在您的单元测试代码中调用的Web服务的app.config/web.config中进行此更改。如果您在IIS中托管您的Web服务,那么它将是web.config。如果您在Windows服务主机,那么你需要做的的app.config(改变其被移动到您.exe.config文件与您的bin文件夹。

+0

对不起,我离开的那部分我原来的问题我还设置了maxReceivedMessageSize在Web服务的web.config,问题与特定的配置更新。你看到你在哪里承载Web服务?如果在Windows服务托管,检查应用程序的名字呢? –

+0

问题。 exe.config(其中,appname是您的应用程序名称)的配置设置。配置文件通常会自动时重新编译更新。 – KrishHari

+0

现在,它在2010年VS一个网站项目托管有一个web.config为该项目(相关部分现在发布在问题中) –