WCF将大图像上传为wsHttpBinding

时间:2011-08-02 12:08:50

标签: c# upload wshttpbinding

我已经创建了一个WCF服务来上传图片。它适用于图像< 50KB左右,但我得到“远程服务器返回错误:(400)错误请求。”图像较大。 我一直在寻找年龄并尝试了很多不同的东西,包括设置maxRequestLength和其他几个设置。

在客户端的事情上,web.config将其作为basicHttpBinding进行选择,并且我正在使用wsHttpBinding(用于更新的功能集)。如果我手动将绑定类型更改为wsHttpBinding并更改相应的选项,则会出现“不支持的媒体类型”错误。 在WCF测试客户端中查看它也将服务显示为basicHttpBinding。

所以我的问题确实是双重的。

  1. 我需要做什么才能让我的服务处理文件> 50KB?
  2. 我需要更改哪些服务才能被识别为wsHttp而不是basicHttp?
  3. 道歉,如果有问题回答这些问题 - 我已经搜索了stackoverflow并尝试了一些建议,但有可能我错过了它!

    编辑:一如既往,我已经设法通过摆弄服务web.config并手动将端点更改为wsHttpBinding来解决wsHttpBinding问题。仍然会收到大型上传文件大小问题。

1 个答案:

答案 0 :(得分:2)

您需要在web.config

中更新绑定

e.g。这就是我在我的wcf宁静服务中所做的。我相信你的情况也会非常相似

    <bindings>
          <webHttpBinding>
              <!-- buffer: 64KB; max size: 64MB -->
              <binding name="StreamedBinding" closeTimeout="00:01:00" openTimeout="00:01:00" 
                       receiveTimeout="00:10:00" sendTimeout="00:01:00" transferMode="Streamed" 
                       maxBufferPoolSize="67108864" maxBufferSize="65536" maxReceivedMessageSize="67108864">
              </binding>
          </webHttpBinding>
</bindings>

<service name="WCFRestFul.ApiRestful">
        <endpoint address="" binding="webHttpBinding"
                  bindingConfiguration="StreamedBinding" bindingName="StreamedBinding" 
                  contract="WCFRestFul.IApiRestful" behaviorConfiguration="web" />
 </service>