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

本文关键字:识别 不再 结点 程终 WCF | 更新日期: 2023-09-27 18:32:00

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

远程终结点不再识别此序列。这是最 可能是由于远程终结点中止。的价值 wsrm:标识符不是已知的序列标识符。可靠的 会话出错。

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

有一个类似的问题具有相同的错误,但没有应用任何建议的解决方案。完全相同的代码在所有计算机上都能正常工作,但在服务器上安装时会引发异常。

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

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

<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" />

我仍然不确定为什么,但这种行为的原因是该方法返回的接口具有 IEnumerable<> 属性。将其替换为列表<>解决了该问题。

我很想知道为什么这在我们尝试过的所有其他机器上都有效,但不适用于 UAT 服务器。

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

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

它适用于:Windows Server 2008 R2 企业版、Windows 7 企业

它抛出了异常:Windows Server 2008 R2 Datacenter。

编辑:虽然这解决了这个问题,但我希望得到一个答案来解释为什么IEnumerable<>可以在我们运行它的每台机器上运行,但在UAT机器上崩溃。

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