gpt4 book ai didi

wcf - 突然 WCF session 服务断开时的资源清理

转载 作者:行者123 更新时间:2023-12-05 01:15:00 24 4
gpt4 key购买 nike

我有一个 session WCF 服务,它生成一个进程并在调用 IsInitiating 操作时打开一个到该进程的命名管道。当调用 IsTerminating 操作时,服务会沿着管道发送一条消息,通知另一端的进程它可以关闭。不幸的是,如果客户端没有优雅地断开连接(通过调用 IsTerminating 操作),则消息永远不会发送到管道,其他进程也永远不会退出。

我尝试让我的服务实现 IDisposable(希望当 session 在服务器上超时时它会调用我的 Dispose 方法),但这似乎不起作用。

有什么方法可以在客户端断开连接时在服务器端调用一些代码(即使我必须等待 inactivityTimeout)?

最佳答案

IDisposable 的想法应该可行。将您的实例上下文模式设置为:

来自 MSDN:http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

[服务行为(InstanceContextMode = InstanceContextMode.PerSession)]MyService 类:IMyContract {...}

session 通常在客户端关闭代理时终止,代理会通知服务 session 已结束。如果服务支持 IDisposable,则将调用 Dispose 方法。图 4 显示了配置为使用私有(private) session 及其客户端的契约(Contract)和服务。从输出中可以看出,客户端获得了一个专用实例。

关于wcf - 突然 WCF session 服务断开时的资源清理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975716/

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