WCF - 远程端点不再识别此序列

时间:2016-01-27 09:21:51

标签: c# wcf

我在WCF上调用Method时遇到了一个非常奇怪的问题。 Web和服务代码通过开发完成,在本地开发人员计算机和QA服务器上运行良好。但是当作为Windows服务返回时发布到UAT服务器:

  

远程端点不再识别此序列。这是最多的   可能是由于远程端点中止。的价值   wsrm:标识符不是已知的序列标识符。可靠的   会议出了问题。

方法本身工作正常,他们从数据库调用构建传输对象,然后在返回对象时抛出异常。

有一个类似的question具有相同的错误,但没有应用任何建议的解决方案。完全相同的代码在所有机器上运行良好,但在服务器上安装时抛出了异常。

3 个答案:

答案 0 :(得分:1)

我遇到此错误,并通过添加最大大小数据并增加超时来解决:

<binding name="WSHttpBinding_ILetterRegistrationService" closeTimeout="00:50:00" openTimeout="00:50:00" receiveTimeout="00:50:00" sendTimeout="00:50:00" bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="52428800" maxReceivedMessageSize="2000000" messageEncoding="Mtom" textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="200000000" maxArrayLength="200000000" maxBytesPerRead="524288" maxNameTableCharCount="524288" />
          <reliableSession ordered="true" inactivityTimeout="00:50:00" enabled="true" />
          <security mode="None">
            <transport clientCredentialType="Windows" proxyCredentialType="None" realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true" />
          </security>
        </binding>

  <endpoint address="http://myLink.svc" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ILetterRegistrationService" contract="LetterReg.ILetterRegistrationService" name="WSHttpBinding_ILetterRegistrationService" />

答案 1 :(得分:0)

我仍然不确定原因,但是这种行为的原因是该方法返回的接口有一个IEnumerable&lt;&gt;属性。用List&lt;&gt;替换它解决了这个问题。

我很想知道为什么这会在我们尝试过的其他所有机器上运行,而不是UAT服务器。

两者上安装的.Net版本完全相同。

我能看到的唯一区别是不同的操作系统。

它运行良好:Windows Server 2008 R2企业版,Windows 7企业版

它引发了例外:Windows Server 2008 R2 Datacenter。

编辑: 虽然这解决了这个问题,但我喜欢一个解释为什么IEnumerable&lt;&gt;可以在我们运行它的每台机器上运行,但在UAT机器上崩溃。

答案 2 :(得分:0)

我得到了相同的错误,但是当在服务代理(客户端)上调用Close()方法时会发生这种错误。我的应用程序打开频道并在2-3分钟内连续进行一系列调用,所有这些调用都成功,但是当关闭()时程序会挂起 closeTimeout (1分钟)的配置时间被称为。