C# ThreadPool.QueueUserWorkItem所需的用户

C# ThreadPool.QueueUserWorkItem所需的用户,c#,.net,threadpool,C#,.net,Threadpool,也许这个问题不在这里 我正在使用ThreadPool.QueueUserWorkItem来写入文件夹/文件,我的问题是当它试图写入我得到的未经授权的访问异常时 所以我更改了目录,允许每个人都可以写,而且它可以工作 但我不想让每个人都写作。ThreadPool.QueueUserWorkItem使用的用户/组似乎与主线程不同 它应该是什么用户?因为它是您必须授予权限的IIS应用程序 您的主线程很可能模拟请求所针对的用户。后台工作项不再与用户关联 PS:在IIS中使用ThreadPool.Queue

也许这个问题不在这里

我正在使用
ThreadPool.QueueUserWorkItem
来写入文件夹/文件,我的问题是当它试图写入我得到的
未经授权的访问异常

所以我更改了目录,允许每个人都可以写,而且它可以工作

但我不想让每个人都写作。
ThreadPool.QueueUserWorkItem
使用的用户/组似乎与主线程不同


它应该是什么用户?

因为它是您必须授予权限的IIS应用程序

您的主线程很可能模拟请求所针对的用户。后台工作项不再与用户关联


PS:在IIS中使用ThreadPool.QueueBackgroundWorkItem是,您需要使用更合适的工具在IIS中进行后台工作。

这是在asp.net网站中运行的程序吗?如果使用主线程编写,会发生什么?正确,WebApplication c#framework 4.0。主线程,我指的是aspx中的进程,写起来没有任何问题。有趣的答案!但这给我提出了很多问题。1.这可能仅仅是因为ASP.NET中不推荐/不支持
ThreadPool.QueueUserWorkItem
才出现问题吗?第三方物流(即
Task.StartNew
)2也会存在模拟问题。即使它可能构建在
线程池
之上?3.如果ASP.NET中的所有异步内容都是一个坏主意,那么ASP.NET拥有异步功能(如异步HTTP处理程序)会很奇怪,人们在使用TPL时会一直遇到类似OP的奇怪问题…?在IIS上启动后台线程通常不会完成,您已经在线程池线程上,如果您使用异步特性,如async/wait,则上下文将与用户一起流动。有关更多信息,请参阅本文。IIS的合适工具应该是什么?@stakx I被切断。在我的手机上打字。更好的措辞应该是“在异步等待上下文流中,通过线程之间的等待,包括用户的安全标识”。这里有一些关于异步上下文流的更有用的阅读,也可以阅读开始时提到的相关文章。