2

我对 wcf 服务有疑问。Wcf 服务方法由应用程序调用。这个应用程序调用服务方法非常频繁(每分钟几十次)。服务方法被正确调用(最后使用 Close(),或异常后使用 Abort())。对我来说最奇怪的是几个小时后我的应用程序从服务中收到错误:

接收对http://domain.xx/MyService.svc的 HTTP 响应时出错。这可能是由于服务端点绑定未使用 HTTP 协议。这也可能是由于服务器中止了 HTTP 请求上下文(可能是由于服务关闭)。有关更多详细信息,请参阅服务器日志。底层连接已关闭:接收时发生意外错误。无法从传输连接读取数据:现有连接被远程主机强行关闭。

或者这个:

* 00:15:00 后等待回复时请求通道超时。增加传递给 Request 调用的超时值或增加 Binding 上的 SendTimeout 值。分配给此操作的时间可能是较长超时的一部分。对“http://domain.xx/MyService.svc”的 HTTP 请求已超过分配的超时时间 00:15:00。分配给此操作的时间可能是较长超时的一部分。操作已超时 *

什么会导致这样的错误?为什么服务在最初的几个小时内就能正常运行?

4

2 回答 2

1

我会检查您的应用程序日志。根据我的经验,这些错误对我来说更倾向于与服务器相关而不是与代码相关。IIS 可能有问题。

于 2012-08-03T23:14:30.150 回答
0

我知道你提到了它,但看起来你没有正确关闭你的频道。此外,请确保不要将同一个客户端用于许多服务器调用。只需创建一个,将其用于单个调用,然后处理它。

这是关于关闭 WCF 通道的好读物。

于 2012-08-03T23:14:46.133 回答