gpt4 book ai didi

WCF:如何找出 session 何时结束?

转载 作者:行者123 更新时间:2023-12-04 17:05:16 24 4
gpt4 key购买 nike

我有一个使用 session 的 WCF 应用程序。

session 结束时是否会抛出任何中心事件?我怎样才能知道 session 何时结束而没有(!)调用方法(网络断开,客户端崩溃 - 所以没有“注销”方法调用)?

服务器托管为:

[ServiceBehavior(
InstanceContextMode = InstanceContextMode.PerSession,
ConcurrencyMode = ConcurrencyMode.Reentrant,
UseSynchronizationContext = false,
IncludeExceptionDetailInFaults = true
)]

基本上是因为它使用了回调接口(interface)。

现在,我基本上需要在 session 终止时解耦从后端存储创建的实例;)

有任何想法吗?

最佳答案

[ServiceBehavior(InstanceContextMode = InstanceContextMode.PerSession)]
class MyService : IService
{
public MyService()
{
// Session opened here
OperationContext.Current.InstanceContext.Closed += InstanceContext_Closed;
// get the callback instance here if needed
// OperationContext.Current.GetCallbackChannel<IServiceCallback>()
}

private void InstanceContext_Closed(object sender, EventArgs e)
{
// Session closed here
}
}

该代码不适用于 Single/PerCall InstanceContextMode。

关于WCF:如何找出 session 何时结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2788142/

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