0

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

在事物的客户端,web.config 将其作为 basicHttpBinding 进行拾取,而我正在使用 wsHttpBinding(以获得最新的功能集)。如果我手动将绑定类型更改为 wsHttpBinding 并更改相应的选项,则会收到 Unsupported Media Type 错误。查看 WCF 测试客户端,它也将服务显示为 basicHttpBinding。

所以我的问题实际上是双重的。

  1. 我需要做什么才能让我的服务处理大于 50KB 的文件?
  2. 我需要更改什么才能让我的服务被识别为 wsHttp 而不是 basicHttp?

如果有问题回答这些问题,我深表歉意——我已经搜索了 stackoverflow 并尝试了一些建议,但我可能错过了它!

编辑:一如既往,我现在通过摆弄服务 web.config 并手动将端点更改为 wsHttpBinding 来解决 wsHttpBinding 问题。尽管如此,仍然遇到大的上传文件大小问题。

4

1 回答 1

2

您需要在 web.config 中更新您的绑定

例如,这就是我在 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>
于 2011-08-02T12:31:41.910 回答