2

我有一个问题,我的方案要求我将潜在的大文件发送到 WCF 数据服务。默认情况下,IIS 的 HTTP 请求似乎有 48k 限制,尽管可以通过配置将其更改为一个很大的值。但是,这是防止 DoS 攻击的安全功能。此外,即使安装过程可能能够为此设置初始值,我也无法控制部署到的 IIS 服务器。

发送的数据已经压缩,通常会低于 48k,因此可能有点极端,但如果用户无法上传数据,他们可能会丢失很多工作。

我考虑过分块发送数据,但后来我失去了这个功能:

context.SaveChanges(SaveChangesOptions.ReplaceOnUpdate | SaveChangesOptions.Batch)

对选项有任何想法吗?WCF 数据服务不适合这个,还有什么,传统的 web 服务?上述仍然可以使用替代代码但相同的技术来实现。我不得不通过服务发送数据。

4

1 回答 1

0

通过选择使用 WCF 数据服务的 Web.Config 配置 IIS 7,我找到了解决问题的方法。我使用了 webHttpBinding

<system.serviceModel>
    <bindings>
        <webHttpBinding>
            <binding maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
       </webHttpBinding>
     </bindings>
.....

以字节表示的maxReceivedMessageSize值的默认值为 64KB,以限制遭受拒绝服务攻击 - 将其设置为合理的值。

于 2013-10-07T15:12:48.200 回答