We rise up for the things we believe in over and over again

Итак, имеем рухнувший WSUS. Сервис, который пользователям не виден, о котором большинство даже не догадывается, неработоспособность которого никак не отражается на жизни людей. Но чинить-то надо.
Принято решение перенести этот сервис на другой хост, выделенный. Так оно надежнее. Все подготовлено, ОС установлена, введена в домен, все необходимые сопутствующие программы и службы выставлены и настроены. Этап установки WSUS, завершение копирования файлов. Следующий этап - открытие консоли WSUS (автоматическое) и начальная конфигурация. Не тут-то было. Открытие завершается с ошибкой, предлагается открыть консоль заново и подцепиться к серверу WSUS. Выполняем рекомендации и натыкаемся на очень странную ошибку: The server may be using another port. Естественно, первым делом проверяется указанный порт, он указан верно. Для пущей уверенности лезем в настройки сайта: как был 8530, так и есть. Просмотр логов приложений дает вот такую картину:
Event Type: Warning
Event Source: ASP.NET 2.0.50727.0
Event Category: Web Event
Event ID: 1310
Date: 05/08/2008
Time: 08:06:31
User: N/A
Computer:
Description:
Event code: 3007
Event message: A compilation error has occurred.
Event time: 05/08/2008 08:06:31
Event time (UTC): 05/08/2008 07:06:31
Event ID: 3481465fab33408892a10fa495bf839f
Event sequence: 3
Event occurrence: 1
Event detail code: 0

Application information:
Application domain: /LM/W3SVC/1508003121/ROOT/ServerSyncWebService-89-128623935909687500
Trust level: Full
Application Virtual Path: /ServerSyncWebService
Application Path: C:\Program Files\Update Services\WebServices\ServerSyncWebService\
Machine name:

Process information:
Process ID: 4488
Process name: w3wp.exe
Account name: NT AUTHORITY\NETWORK SERVICE

Exception information:
Exception type: HttpCompileException
Exception message: (0): error CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\serversyncwebservice\00648bbe\3d8ad8e4\App_global.asax.k-otecjd.dll' -- 'Access is denied. '

Request information:
Request URL: <вырезано цензурой>
Request path: /ServerSyncWebService/serversyncwebservice.asmx
User host address: <вырезано цензурой>
User:
Is authenticated: False
Authentication Type:
Thread account name: NT AUTHORITY\NETWORK SERVICE

Thread information:
Thread ID: 5
Thread account name: NT AUTHORITY\NETWORK SERVICE
Is impersonating: False
Stack trace: at System.Web.Compilation.AssemblyBuilder.Compile()
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
at System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)
at System.Web.Compilation.BuildManager.CompileGlobalAsax()
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)

Ковыряние Гугла на работе дало отрицательный результат (который, впрочем, также является результатом). Решения нет. Есть шаманство. У кого-то помогает простая переустановка WSUS, кто-то переставляет ASP.NET/.NET Framework, кто-то еще что-то...
В моем случае ни одна из этих мер не помогла. А помогла проверка разрешений на каталог %windir%\Temp. В том наборе разрешений, который уже имеется, было следующее:
Network Service. Уровень доступа - нулевой.
Простановка туда уровня доступа Full Access решило проблему в один миг. Да, я знаю, что полного доступа этой службе в данный каталог не требуется, но решил перестраховаться.

Итак, резюме случая.
Ошибка ID 1310 от источника ASP.NET 2.0.50727.0 - нехватка прав. Точка возникновения - каталог %Windir%\temp. Решение - простановка пользователю NETWORK SERVICE прав уровня Modify.
Всем, кто столкнулся с подобным - Hope this help. Удачи!

@музыка: Yasunori Mitsuda - Chrono Cross OST - Voyage, Another World

@темы: WSUS