我有一个使用Microsoft.Data.OData服务的WCF实体服务,在IIS中使用WinForms客户端托管。
我从WinForms桌面应用程序查询客户端,并进行更新和删除。一切正常,直到数据大小达到某一点 - 我认为它是64k,然后当我在客户端上尝试SaveChanges()时收到'RequestEntityTooLarge'错误。
我做了google并在这里搜索,发现我应该在我的服务器配置上增加maxReceiveMessageSize。我已经这样做了,还有其他一些事情无济于事。超过一定大小的消息仍然失败一次。
以下是我的服务的web.config:
<system.web>
<compilation debug="true" targetFramework="4.5" />
<httpRuntime targetFramework="4.5" maxRequestLength="2147483647" />
</system.web>
<bindings>
<basicHttpBinding>
<binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647" />
</basicHttpBinding>
</bindings>
以下是客户端上的配置:
<bindings>
<basicHttpBinding>
<binding maxBufferPoolSize="2147483647" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647" />
</basicHttpBinding>
</bindings>
在客户端上,我非常简单地实例化它:
_context = new Notification_Entities(new Uri(_oDataServiceURL));
当我打电话给它时失败了:
_context.SaveChanges();
感谢您的帮助!!
答案 0 :(得分:1)
Microsoft.Data.OData
与任何<bindings />
设置完全无关。 <httpRuntime maxRequestLength="x" />
会有所帮助。这将增加.net限制。但是IIS上还有另一个上传限制。
您需要使用以下内容来提升IIS限制。
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2000000000" />
</requestFiltering>
</security>
</system.webServer>