gpt4 book ai didi

c# - 在 C# 中使用 FileSystemWatcher 时,HttpContext.Current 为空

转载 作者:行者123 更新时间:2023-11-30 17:59:40 25 4
gpt4 key购买 nike

我在我的 ASP.NET Web 应用程序中使用 Forms 身份验证,并以特定的形式使用 FileSystemWatcher。

它有两个事件 watcher_Changedwatcher_Created。事件被正确调用。触发事件后,HttpContext.Current 变为空。

我不明白 session 是否被 FileSystemWatcher 清除。谁可以帮我这个事?代码如下。

void watcher_Created(object sender, FileSystemEventArgs e)
{
watcher_Event(sender, e);
}

private void watcher_Event(object sender, FileSystemEventArgs e)
{
try
{
if (getUserName() != null)
{
//Some Code
}
}
}

public string getUserName()
{
FormsIdentity useridentity = (FormsIdentity)HttpContext.Current.User.Identity; //Exception is thrown here. ("Object reference not set to instance of an object")
FormsAuthenticationTicket userticket = useridentity.Ticket;
string username = userticket.Name;
return username;
}

谢谢。

最佳答案

FileSystemWatcher.Changed 事件本质上是异步的。这意味着它可能会在 HTTP 请求得到服务并且 session 关闭后引发。如果您想将 FileSystemWatcher 的事件与导致其创建的用户相关联,则需要显式维护这一点——例如,通过映射每个 FileSystemWatcher 的字典> 到用户名。

关于c# - 在 C# 中使用 FileSystemWatcher 时,HttpContext.Current 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10946418/

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