Почему ASP.NET терпит неудачу из-за разрешений на GAC? - PullRequest
7 голосов
/ 14 октября 2008

Я пытаюсь запустить приложение ASP.NET 2.0 на компьютере с XP. Насколько я знаю, все настроено правильно. Тем не менее, я получаю следующее сообщение:

Серверное приложение недоступно

И два события появляются в журнале событий приложений каждый раз:

aspnet_wp.exe (PID: 3352) остановлен неожиданно.

Не удалось выполнить запрос, потому что удостоверение процесса ASP.NET не имеют права на чтение для глобального сборка кеша. Ошибка: 0x80070005 Доступ запрещен.

Ранее приложения ASP.NET нормально работали на этом компьютере.

Я попробовал следующие шаги, но не повезло:

  • Я предоставил разрешения на чтение в домашнем каталоге сайта учетной записи ASPNET
  • Я переустановил ASP.NET 2.0, используя aspnet_regiis -i
  • Я предоставил разрешения для учетной записи ASPNET, используя aspnet_regiis -ga <имя моего компьютера> \ ASPNET
  • Я предоставил разрешения на чтение GAC учетной записи ASPNET, используя CACLS% WINDIR% \ assembly / e / t / p <имя моей машины> \ ASPNET: R
  • Я установил версию ASP.NET для сайта на 2.0 в IIS

Я не уверен, что еще я могу сделать!


Использование Process Monitor привело меня непосредственно к проблеме. Большое спасибо Муну за подсказку.

Это была довольно неясная проблема: я ранее использовал программу просмотра журнала привязки сборок (fuslogvw.exe) и настроил ее на запись всех привязок к диску с помощью опции нестандартного пути. Однако учетная запись ASPNET не имела разрешений для этого пользовательского пути. Итак, возврат к использованию пути по умолчанию решил проблему. Предоставление разрешений на чтение / запись для этого настраиваемого пути к учетной записи ASPNET также работает, как и отключение ведения журнала привязки.

Ответы [ 5 ]

2 голосов
/ 14 октября 2008

Вы также можете найти Process Monitor полезным для устранения неполадок этих типов. Если вы настроили фильтр для отображения всей активности, содержащей aspnet_wp.exe, он должен показать вам, к каким файлам он пытается получить доступ, что позволит вам соответствующим образом обновить разрешения.

2 голосов
/ 14 октября 2008

Вот необходимые разрешения: http://msdn.microsoft.com/en-us/library/kwzs111e.aspx

Подробнее: http://support.microsoft.com/default.aspx?kbid=811320

Команд, которые вы запускаете, должно быть достаточно, но стоит проверить :)

1 голос
/ 14 марта 2012

Я знаю, что уже слишком поздно, чтобы ответить на это. У меня тоже была такая же проблема сегодня. Я запустил ниже в командной строке, и это решило проблему

aspnet_regiis -ga machinename\ASPNET
0 голосов
/ 29 ноября 2012

Это решило проблему для меня, я решил поделиться:

Если это для IIS 5.1 (в основном, архаичные версии IIS), щелкните правой кнопкой мыши на своем виртуальном каталоге (из inetmgr) и перейдите к «Все задачи»> «Мастер разрешений» Выберите параметр «Выбрать новые параметры безопасности из шаблона», затем выберите «Общий веб-сайт».

0 голосов
/ 14 октября 2008

Раньше у нас была эта проблема с ASP.NET, потому что, когда Visual Studio создавала свою временную копию сборок, служба индексирования начинала сканировать их на вирусы, и это иногда приводило к сообщению «Отказано в доступе», поскольку пытаясь открыть общий файл. Указание службе индексирования не индексировать каталог временных сборок решило проблему.

...