Maybe this question doesn't go here....
I am using
Because it is a IIS application the user you have to grant rights to is the user the application pool runs under.
Your main thread is likey impersonating the user that the request is for. The background work item is nolonger associated with the user.
PS: using ThreadPool.QueueBackgroundWorkItem in IIS is a very bad idea, you need to use a more appropriate tool for background work in IIS.