我有一个使用 Microsoft.Data.OData 服务的 WCF 实体服务,该服务托管在带有 WinForms 客户端的 IIS 中。
我正在从 WinForms 桌面应用程序查询客户端,并进行更新和删除。一切正常,直到数据大小达到某个点 - 我认为它是 64k,然后当我尝试在客户端上 SaveChanges() 时收到“RequestEntityTooLarge”错误。
我做了谷歌并在这里搜索,发现我应该在我的服务器配置上增加 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();
谢谢你的帮助!!