Ошибки синтаксического анализатора Global.asax при развертывании приложения MVC 1 на удаленном сервере - PullRequest
2 голосов
/ 06 мая 2010

Итак, у нас возникли некоторые проблемы при развертывании приложения ASP.NET MVC на клиентском сайте. В основном, когда мы пытаемся протестировать приложение с локального хоста, мы получаем страшную ошибку парсера Global.asax, указывающую, что он не может загрузить приложение глобально.

Исследования показывают, что в основном существует 4 возможных причины этого исключения:

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

  2. Наследование пространства имен Global.asax не соответствует файлу глобального кода приложения. Опять же, мы дважды проверили это, и так как здесь все работает нормально, это не может быть проблемой.

  3. Разное неописуемое зло IIS / VS.NET. В принципе, в IIS или VS.NET что-то становится проблематичным, и веб-сервер не будет правильно работать для этого приложения. Мы выполнили очистку и восстановление, удалили виртуальный каталог и создали его заново, а также выполнили все операции с IIS, которые мы нашли в Интернете. Различные комбинации отказов IIS, перезагрузок сервера, виртуального каталога / восстановления приложения и т. Д.

  4. Проблема с разрешениями на уровне кода. Мы проверили полное доверие к машине / веб-конфигурации в директории фреймворка, установили полное доверие .NET в IIS, мы предоставили всем полный контроль над каталогами, чтобы он ударил молотком безопасности и т. Д. .

Соответствующие детали: Windows Server 2008 x64 IIS 7, 32-битный совместимый пул приложений (приложение было написано на 32-битной ОС, скомпилированной для любого процессора) Идентификатор пула приложений установлен в NetworkService Microsoft ASP.NET MVC 1.0 Развертывание XCopy

Мы развернули еще одно приложение только для чтения. Существенным отличием в этом приложении является использование NHibernate и Log4Net, которые требуют полного доверия. Кроме того, фактическое имя проекта веб-проекта отличается от пространства имен по умолчанию, однако пространство имен Inherits в файлах Global.asax и Global.asax.cs совпадает, поэтому это не должно вызывать проблем.

У кого-нибудь есть яркие идеи? Мы официально опущены до слабых.

EDIT Исключение составляет Could not load type <MyDefaultNamespace>.<Global.asax.cs class name>

Фрагмента кода нет, поскольку приложение вообще не загружается. Сбой сразу же, без задержки по первому запросу после установки.

Это то же самое, что все эти люди здесь имеют проблемы с

Ответы [ 2 ]

3 голосов
/ 11 июня 2010

Если вы изменили платформу решения, попробуйте изменить ее обратно на Любой ЦП .

У меня был установлен x86 (тот, который я создал, чтобы разрешить изменения кода во время отладки на компьютере x64). Когда я вернул его на Any CPU, описанная вами проблема исчезла.

0 голосов
/ 06 мая 2010

Исключением является "Не удалось загрузить тип <MyDefaultNamespace>.<Global.asax.cs class name>"

Фрагмента кода нет, так как приложение вообще не загружается. Сбой сразу же, без задержки по первому запросу после установки.

Это то же самое, что все эти люди здесь имеют проблемы с

...