我的ASP.MVC应用程序中有一个用例,我需要保存大约15k记录的集合(这是来自CSV文件上传)。我将它通过CSLA业务对象,以便使用业务规则验证上传的数据。
我正在使用WCF DataPortal。当调用save时,我在大约30s到45s后出现此错误:
System.ServiceModel.EndpointNotFoundException:[my dataportal host address] /WcfPortal.svc上没有可以接受该消息的端点。
我已经确定,如果我将集合分解为更小的块,并在每个块上调用save,则用例完成没有问题。
我已将我的服务配置为使用如下最大值(在Rocky的书中推荐)(并根据其他指导增加了sendTimeout):
<binding name="wsHttpBinding_IWcfPortal" maxReceivedMessageSize="2147483647" sendTimeout="05:00:00">
<readerQuotas maxBytesPerRead="2147483647" maxArrayLength="2147483647" maxStringContentLength="2147483647" maxNameTableCharCount="2147483647" maxDepth="2147483647"/>
</binding>
现在我知道我的数据不超过2147486347大小限制的事实。此外,如果确实如此,我希望得到一个更有意义的错误消息,表明这一点(就像我在默认情况下的大小限制时所做的那样)。
我已启用WCF日志记录/跟踪,但没有显示任何内容。这个错误似乎是在WCF堆栈进入图片之前遇到的一些通信级别错误。
请告知我为什么在尝试保存此大集合时会出现此错误?
答案 0 :(得分:0)
随着WCF多年来的变化,他们增加了一些你可以改变的其他限制。有关数据门户的WCF配置的最新信息有两个地方可供使用: