wcf upload stream - 远程服务器返回了意外响应:(400)Bad Request

时间:2013-01-29 13:21:53

标签: c# wcf web-services iis-7 streaming

我调查了很多类似的问题,但我无法解决我的问题!

我想将XML文件发送到服务器并通过函数将响应作为XML文件获取。

我能够发送最多48Kb但不是更大文件的XML文件!

在开发我的网络服务和客户端时,我使用了this link

此外,我对ISS设置进行了一些更改,如下所示:

cscript adsutil.vbs set w3svc/1/uploadreadaheadsize 10485760

appcmd.exe set config "Default Web Site" -section:system.webServer/serverRuntime /uploadReadAheadSize:"10485760"  /commit:apphost

我在服务web.config文件中添加了<httpRuntime targetFramework="4.5" maxRequestLength="10485760" useFullyQualifiedRedirectUrl="true" executionTimeout="36000"/>

客户端的app.config文件中的

<system.web> <httpRuntime maxRequestLength="10485760"/> </system.web>

我在service的web.config文件中实现了绑定和服务配置,如下所示:

<bindings>
  <basicHttpBinding>
    <binding name="BasicHttpBinding_IService" closeTimeout="10:01:00"
      openTimeout="10:01:00" receiveTimeout="10:10:00" sendTimeout="10:01:00"
      maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"
      transferMode="Streamed" messageEncoding="Text">
      <readerQuotas maxDepth="128" maxStringContentLength="2147483647"
        maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
    </binding>
  </basicHttpBinding>
</bindings>
<services>
  <service name="Service">
    <endpoint address="" binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService"
      contract="IService" />
  </service>
</services>

在App.config中的客户端配置中:

<bindings>
        <basicHttpBinding>
            <binding name="BasicHttpBinding_IService" closeTimeout="10:01:00"
                openTimeout="10:01:00" receiveTimeout="10:10:00" sendTimeout="10:01:00"
                maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
                maxReceivedMessageSize="2147483647" transferMode="Streamed"
                messageEncoding="Text">
                <readerQuotas maxDepth="128" maxStringContentLength="2147483647"
                    maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" />
            </binding>
            <binding name="BasicHttpsBinding_IService">
                <security mode="Transport" />
            </binding>
        </basicHttpBinding>
    </bindings>

您是否知道我为什么不能发送大小超过48KB的文件?

1 个答案:

答案 0 :(得分:0)

我在web.config文件中添加了以下代码,问题解决了:Dp>

  <protocolMapping>
  <add binding="basicHttpBinding" scheme="http" bindingConfiguration="BasicHttpBinding_IService"/>
</protocolMapping>