WCF服务失败 - HTTP / 1.1 400错误请求

时间:2014-09-09 14:23:13

标签: c#

我在调用我的WCF服务时遇到异常更大的请求XML对象内容长度65708,它的工作没有任何问题,请求XML文件的内容长度小于此。

这是我们向外部客户端公开的服务,我使用SoapUI调试服务,我得到异常HTTP / 1.1 400错误请求[\ r] [\ n],甚至没有达到调试点。我在网上搜索并应用了提供的配置值,但没有一个帮助我解决问题。

在所有配置更改后,我的web.config文件看起来像这样(只有绑定部分)。

    <bindings>
      <basicHttpBinding>
        <binding name="GDASHttp" closeTimeout="00:10:00" openTimeout="00:10:00" receiveTimeout="00:10:00" sendTimeout="00:10:00" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="2147483647" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" messageEncoding="Mtom" textEncoding="utf-8" transferMode="Streamed" useDefaultWebProxy="true">
          <readerQuotas maxDepth="2147483647" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647"/>
          <security mode="TransportCredentialOnly">
            <transport clientCredentialType="Windows"/>
          </security>
        </binding>
</basicHttpBinding>

我没有更改客户端文件中的任何设置,因为我可以从SoapUI获取异常,而且问题仅与服务器配置有关。我确实理解了一些设置是根据文件大小接受的问题,但不确定我们在上述设置中可以提供的最大值是什么。

我根据服务器中的一些Google建议修改了IIS设置,这是我更改的applicationhost.config文件。

<location path="Default Web Site/GDAS.FY15R2.3.1/Trusted" overrideMode="Allow">
        <system.webServer>
            <handlers accessPolicy="Read, Execute" />
            <security>
                <ipSecurity>
                    <add ipAddress="127.0.0.1" subnetMask="255.255.255.255" allowed="true" />
                </ipSecurity>
                        <requestFiltering> 
                        <requestLimits maxAllowedContentLength="40000000" /> 
                        </requestFiltering> 
            </security>
            <serverRuntime uploadReadAheadSize="2147483647" />
        </system.webServer>
    </location>

1 个答案:

答案 0 :(得分:0)

这是你要使用的值:2147483647

但是对于WCF,您需要在客户端和服务器中配置它。你不能只改变服务器绑定,因为两个Bindings基本上是握手,所以MAX值应该在两个配置中匹配。

我会打开跟踪,看看到底发生了什么。