9

使用 WCF 服务时出现 CommunicationException。消息是:

远程端点不再识别此序列。这很可能是由于远程端点上的中止。wsrm:Identifier 的值不是已知的序列标识符。可靠会话出现故障。

调用合约方法后会立即引发异常。在调用合约方法之前,通道状态为 Opened。捕获此异常后,我恢复了我的服务客户端,并且在一段时间内它工作正常。但随后再次发生此错误。似乎超过了一些超时,但我不明白到底是哪一个。

我使用启用了可靠会话的 wsHttpBinding。InactivityTimeout 设置为半小时,我确定它没有超过,因为提前抛出异常。

4

4 回答 4

7

我解决了这个问题。原因是服务器端的 RecieveTimeout。它设置为 1 分钟,因此在 1 分钟内没有请求后,服务器用于关闭通道,并且当客户端尝试调用合约时,由于超时,通道已经崩溃。

看完这篇文章,我找到了解决方案:

http://msdn.microsoft.com/en-us/library/system.servicemodel.reliablesession.inactivitytimeout.aspx

于 2010-04-16T13:08:51.843 回答
3

我在设置返回对象列表的新 WCF 服务时收到此错误。

我的理解是 WCF 服务只能来回传递非常简单的对象。

因此,具有公共属性以外的任何对象都不能转让。

该对象有一个只读属性做一些逻辑。

一旦我摆脱了这个,重建并更新了网络参考,错误就消失了。

于 2013-11-20T05:33:07.843 回答
1

提示:如果您要返回一个对象并且它具有属性,请检查每个对象的gets 和sets。我们遇到了一个问题。

于 2014-04-01T20:11:21.027 回答
0

我已经看到当应用程序池被回收时会发生这种情况。

查看本博客关于服务回收的最后一节。

于 2010-04-16T12:43:00.767 回答