gpt4 book ai didi

c# - WCF 是否在多个线程上运行 session ?

转载 作者:行者123 更新时间:2023-11-30 20:58:08 24 4
gpt4 key购买 nike

我有一个 wcf 服务(托管在 IIS 中),它是 setup to use sessions .它似乎工作。当 Application_PostAcquireRequestState 被调用时,我有一个 session ID。

我最终像这样使用它(在我的 Global.asax 中):

if (Context.Handler is IRequiresSessionState)
{
log4net.ThreadContext.Properties["sessionId"] = Session.SessionID;
}

这似乎工作正常。该值存储在我的 log4net 属性中。

但是当我的服务操作开始时(我的实际 WCF 服务代码)log4net 属性再次为 null。

由于该属性是按线程存储的 (ThreadContext),我只能假设这意味着 session 在一个线程上设置,然后在另一个线程上执行。我说得对吗?

是否可以在正确的线程上设置我的 log4net 属性(不必记住在每个服务操作开始时进行上述调用)?

最佳答案

是的,IIS 可以使用多线程来为多个 WCF 请求提供服务。参见 http://msdn.microsoft.com/en-us/library/cc512374.aspx了解更多详情。

您可以考虑为每个 WCF 请求使用不同的记录器实例。

关于c# - WCF 是否在多个线程上运行 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16319801/

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