Назад | Перейти на главную страницу

Продолжайте запускать aspnet_regiis

Не уверен, принадлежит ли это сюда или в SO, но все равно здесь ...

У нас есть сервер CruiseControl.NET, который выполняет ночные сборки приложений или приложений, а затем публикует полученные результаты в экземпляре IIS в том же самом поле - это действует как тестовое развертывание для QA.

Все работало нормально в течение нескольких месяцев, пока мы не переехали на новый сервер (Win2003 R2 SP1) - фактически виртуальную машину.

Теперь, когда ночная сборка публикуется в IIS, в браузере появляется сообщение об ошибке: Сбой компилятора с кодом ошибки 128. На старом сервере этого никогда не было!

Бег aspnet_regiis -i вернет сайт в оперативный режим, но я сбит с толку, почему IIS, кажется, забыл все о .NET в результате простой копии файла.

Я просмотрел стадию публикации в процессе сборки и перешел от старого доброго пакетного сценария к «более чистому» сценарию nAnt, но проблема остается.

Если я запустил указанную выше команду, очистил журналы событий, а затем зашел на сайт, появится новое событие:

The configuration information of the performance library
"C:\WINDOWS\system32\infoctrs.dll" for the "InetInfo" service does not match 
the trusted performance library information stored in the registry. 
The functions in this library will not be treated as trusted.

Но сайт все равно загружается без проблем. Если я затем запустил один из сценариев публикации (.bat или .build), то при доступе к сайту появится другое идентичное событие и отобразится ошибка компиляции (хотя запуск aspnet_regiis исправляет).

Если я вручную удаляю старые файлы и копирую новые, в браузере снова отображается ошибка компилятора.

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

[Edit 12/11/09]: Я уже некоторое время обдумывал это и до сих пор не знаю, почему это происходит. Я переустановил IIS и .NET 2.0 и 3.0 (3.5 не нужен!), Но проблема не исчезла. Наконец, я попытался развернуть приложение, используя файлы, созданные с помощью сборки «Release» (в отличие от «Debug»), и это, похоже, решило проблему, но я не знаю почему.

Я узнаю об этом завтра утром, после того, как ночные сборки начнутся в гневе, так что, надеюсь, меня ждут хорошие новости. Если предположить, что это проблема, почему это должно иметь значение? Этот процесс месяцами работал на физическом сервере нормально - почему он должен вызывать проблемы на виртуальной машине?

У кого-нибудь есть идеи, предложения или решения ..? заранее спасибо

Сама виртуальная машина не откатывается, не так ли?

Это может быть связано со стандартной структурой веб-сайта 1.1 или 2.0. aspnet_regiis устанавливает версию фреймворка.

Если ты:

  • Установить окна
  • Запустите все обновления Windows
  • Добавить роль приложения

ИЛИ

  • Установить окна
  • Добавить роль приложения
  • Запустите все обновления Windows

Тогда фреймворк по умолчанию не тот. Также может быть, что вы устанавливаете версию фреймворка.