gpt4 book ai didi

wcf - 未知原因的可靠 session 故障

转载 作者:行者123 更新时间:2023-12-03 13:02:13 24 4
gpt4 key购买 nike

我正在尝试实现以下目标 - 一个客户端代理实例(保持打开状态)由多个线程使用可靠 session 访问。到目前为止,我所管理的是 A) 与客户端代理的可靠 session ,该代理在每次调用时创建和处理,或者 B) 我的目标是,但没有可靠的 session 。

但是,当我在绑定(bind)上启用可靠 session 时,会出现以下行为:

客户端

在应用程序启动后,一切似乎都可以正常工作,直到大约 18 条消息进入 WCF session 。我首先得到 proxy.InnerChannel.Faulted引发事件,然后在我调用代理上的方法时捕获异常。异常(exception)是 System.TimeoutException ,带有消息:

"The request channel timed out while waiting for a reply after 00:00:59.9062512. Increase the timeout value passed to the call to Request or increase the SendTimeout value on the Binding. The time allotted to this operation may have been a portion of a longer timeout."



内部异常有类似的消息:

"The request operation did not complete within the allotted timeout of 00:01:00. The time allotted to this operation may have been a portion of a longer timeout."



内部堆栈跟踪顶部的方法是:
System.ServiceModel.Channels.ReliableRequestSessionChannel.SyncRequest.WaitForReply(TimeSpan timeout)

然后我调用 proxy.Close后跟 proxy.Abort (捕捉和忽略异常)。如果我使用默认设置(即简单 <reliableSession/> ),则调用代理。在另一个 System.Timeout 中关闭结果异常(尽管这次分配的超时时间是 00:00:00),但是如果我覆盖上面指定的默认值,则不会引发异常。

服务端

利用 WCF 跟踪,我得到一个 System.ServiceModel.CommunicationException ,带有消息:

"The sequence has been terminated by the remote endpoint. The session has stopped waiting for a particular reply. Because of this the reliable session cannot continue. The reliable session was faulted."



堆栈跟踪结束于:
System.ServiceModel.AsyncResult.End[TAsyncResult](IAsyncResult result)

当远程连接到服务器时,我会收到相同的消息,当代码执行在服务调用中跳过我的服务的返回语句时会发生这种情况,这会导致错误。

令我困惑的是,该服务是稳定的,并且可以使用选项 A) 或 B) 运行,如我的帖子开头所述,并且发生在不同数量的消息(大约 18 条)之后。前一个事实表明代码没有任何问题(实际上我已经检查过没有抛出异常),而后者只是让我感到困惑,这就是我修改可靠 session 绑定(bind)设置的原因。

我很坚持这一点。谁能建议为什么可靠的 session 会以这种方式出现故障?

最佳答案

您需要覆盖默认值,并根据原因将超时设置为更高或更低,似乎在某个其他程序启动或停止后仅在一毫秒发生异常之前,超时导致异常

或最可能的原因

您分配的超时可以添加为 18 分钟或 18 次调用的连续单次超时..加上其他使用时间加在一起作为一个完整的超时.这可能是它要求更多时间的原因。

在任何情况下,您都必须静态设置自己的设置,因为自动默认值总是会覆盖您所做的任何更改。

输入您的本地主机 http 绑定(bind)名称并将您的 closetimeout 设置为 5.00 分钟
甚至可能更改请求时间。请求超时 2.00 分钟



closeTimeout="00:05:00"

关于wcf - 未知原因的可靠 session 故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1143326/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com