Два дня я боролся с загадочной ошибкой при компиляции веб-сайта ASP.NET. Ошибка (довольно известная) CS0016: «Невозможно записать в выходной файл [имя файла] — каталог недействителен».
После двух дней отладки я обнаружил, что причина моей проблемы в том, что NetworkService каким-то образом не имеет необходимых прав на C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files. Я добавил «Все» с полными правами в папку, но я по-прежнему не могу получить доступ к http://localhost
, и я вижу с помощью Process Monitor от SysInternals, что учетная запись NetworkService получает «ИМЯ НЕ НАЙДЕНО» при попытке создать DLL-файл в этот каталог. Моя интерпретация заключается в том, что у него почему-то нет достаточных прав на папку.
Однако, когда я запускаю Visual Studio и подключаю отладчик, файлы компилируются с использованием моего пользователя домена (JohnDoe для справки), и по какой-то причине это работает нормально, как если бы учетная запись пользователя домена содержит дополнительные права, чем я не могу дать локальные пользователи на моей машине, что меня очень озадачивает.
Мои два вопроса к вам, ребята: почему, когда я добавляю «Все» с полными правами в папку, у NetworkService все еще нет прав, необходимых для создания необходимых временных файлов? И какие права есть у моего пользователя домена JohnDoe, которые я не могу предоставить своим локальным пользователям на своем компьютере?