我的 ASP.MVC 应用程序中有一个用例,我需要在其中保存大约 15k 条记录的集合(来自 CSV 文件上传)。我将其放入 CSLA 业务对象中,以便使用业务规则验证上传的数据。
我正在使用 WCF DataPortal。调用 save 时,大约 30 到 45 秒后出现此错误:
System.ServiceModel.EndpointNotFoundException:[我的数据门户主机地址]/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 堆栈出现之前遇到的一些通信级别错误。
请告知为什么我在尝试保存这个大型集合时会收到此错误?