0

我的 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 堆栈出现之前遇到的一些通信级别错误。

请告知为什么我在尝试保存这个大型集合时会收到此错误?

4

1 回答 1

0

随着 WCF 多年来的变化,它们添加了一些您可以更改的其他限制。有关数据门户的 WCF 配置的最新信息可在两个地方获得:

于 2013-02-11T06:45:19.637 回答