Проект Visual Studio Web Deployment нарушает разрешения учетной записи ASPNET - PullRequest
2 голосов
/ 04 февраля 2011

Я создал веб-приложение ASP.NET с Visual Studio 2008 и целевой платформой версии 2.0.Я создал проект Web Setup, чтобы развернуть его на нескольких целевых ОС.

Для проекта установки я написал пользовательское действие, которое выполняется при событии «OnCommitting».Это настраиваемое действие добавляет сопоставление сценария с подстановочными знаками для маршрутизации всех запросов через механизм ASP.NET.

FileMon предполагает, что при создании файла в следующем каталоге произошла ошибка:C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files

Учетная запись пользователя, которая пыталась выполнить это действие, была IWAM_,

Проблема заключается в том, что после запуска этой установки, если я пытаюсь получить доступ к любому URL-адресу на недавно установленном сайте, я получаю сообщение об ошибке:

Ошибка сервера в приложении '/ myapp'.

Не удалось получить доступ к метабазе IIS.

Описание: Произошло необработанное исключение во время выполнения текущего веб-запроса.Просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.Web.Hosting.HostingEnvironmentException: Не удалось получить доступ к метабазе IIS.

Учетная запись процесса, используемая для запуска ASP.NET, должна иметь доступ для чтения к метабазе IIS (например, IIS: // имя_сервера / W3SVC).Для получения информации об изменении разрешений метабазы ​​см. http://support.microsoft.com/?kbid=267904.

Ошибка источника:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Я уже пробовал эти варианты после 2 дней поиска в Google:

  1. Запустите aspnet_regiis -i
  2. Запустите aspnet_regiis -ga \ ASPNET
  3. Запустите aspnet_regiis -u, а затем aspnet_regiis -i

На данный момент у меня работает вариант 3, но я хочу избегать его использования, поскольку мое веб-приложение будет развернуто на компьютере, на котором уже может быть размещено какое-то другое приложение в IIS, и я не хочу мешать этим приложениям.

Может кто-нибудь предложить мне обходной путь для этого?

Кстати, в моей нынешней системе установлены .Net framework 3.5 и VS2008, установленные на Win XP SP3 и IIS 5.1.

Спасибо,Vamyip

1 Ответ

0 голосов
/ 04 февраля 2011

Лучшей вашей ставкой является нестандартный бит сценария в пакете установщика, который проверяет разрешения, а затем запускает команду на основе этой информации.

В серверной ОС это не требуется, поскольку пользователь по умолчанию для группы приложений будет находиться в IIS_WPG и иметь разрешения для временных каталогов. Windows XP имеет нестандартную версию IIS с ошибками, которая не соответствует всем правилам. Если ожидаемая среда развертывания - Windows Server 2003 или выше, то ваш установщик должен работать как есть.

...