2013-10-03 39 views
2

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

发送的数据已经压缩了,通常会低于48k,所以可能有点边缘情况,但如果用户无法上传数据,可能会失去很多工作。

我想过发送数据起来块,但然后我失去这个功能:

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

的选项任何想法? WCF数据服务不适合这个,别的,传统的Web服务?上述情况仍然可以通过使用替代代码来实现,但使用相同技术。我坚持不得不通过服务发送数据。

回答

0

我发现我的问题的解决方案,选择使用WCF数据服务的Web.Config配置IIS 7。我用webHttpBinding

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

maxReceivedMessageSize,以字节表示,具有64KB的默认值来限制暴露于拒绝服务攻击 - 将其设置为一个合理的值。