2016-11-24 6 views
2

Может быть, этот вопрос не идет здесь ....пользователей, необходимые для ThreadPool.QueueUserWorkItem

Я использую ThreadPool.QueueUserWorkItem написать папку/файл, моя проблема в том, когда он пытается писать я UnauthorizedAccessException.

Таким образом, я изменил каталог, чтобы предоставить всем возможность писать, и это работает.

Но я не хочу предлагать всем писать. Кажется, это другой пользователь/группа, который использует ThreadPool.QueueUserWorkItem, чем основной поток.

Каким должен быть пользователь?

+0

Это программа работает на asp.net сайте? Также что происходит, если вы пишете основной поток? –

+0

Исправить, webaplication C# framework 4.0. Основной поток, я имею в виду процесс в aspx, напишу без проблем. – Jamo

ответ

2

Поскольку это приложение IIS, пользователю, которому вы должны предоставить права, является the user the application pool runs under.

Ваша основная тема является олицетворением пользователя, для которого предназначен запрос. Элемент фоновой работы - это nolonger, связанный с пользователем.

PS: Использование ThreadPool.QueueBackgroundWorkItem в IIS - a very bad idea, вам необходимо использовать более подходящий инструмент для фоновой работы в IIS.

+0

Интересный ответ! Но для меня возникает много вопросов. ** 1. ** Возможно ли, что проблема происходит * только * с 'ThreadPool.QueueUserWorkItem' именно потому, что это не рекомендуется/поддерживается в ASP.NET? Будет ли олицетворение также проблемой с TPL (т. Е. 'Task.StartNew') ** 2. **, хотя это, вероятно, построено поверх' ThreadPool'? ** 3. ** Если все асинхронные вещи в ASP.NET - плохая идея, было бы странно, если бы ASP.NET имел асинхронные средства (такие как асинхронные обработчики HTTP), и люди испытали бы странные проблемы, такие как все OP время использования TPL ...? – stakx

+0

Запуск фоновых потоков в IIS обычно не выполняется, вы уже находитесь в потоке пула потоков, и если вы используете функции async, такие как async/await, контекстные потоки с пользователем. См. Эту статью для получения дополнительной информации https://msdn.microsoft.com/en-us/library/aa954062.aspx –

+0

Каким должен быть подходящий инструмент для IIS? – Jamo