Ошибка загрузки App_Code в WebApp - PullRequest
0 голосов
/ 14 марта 2012

Ранее на этой неделе недавние развертывания нашего веб-приложения ASP.NET 2.0 начали вызывать следующую ошибку в непредсказуемое (не легко воспроизводимое) время:

Ошибка парсера

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

Сообщение об ошибке синтаксического анализатора : не удалось загрузить файл или сборку 'App_Code, Version = 2.5.0.0, Culture = en-US, PublicKeyToken = null' или одну из ее зависимостей. Система не может найти указанный файл.

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

Line 1:  <%@ page language="c#" inherits="OurAppNamespace.Migrated_Index, App_Web_01zualsq" validaterequest="false" maxPageStateFieldLength="500" %>
Line 2:  
Line 3:  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

Как только развертывание начинает выдавать эту ошибку, оно не остановится, пока мы не развернем или не изменим файл Web.Config. Нет необходимости говорить, что мы неоднократно проверяли и проверяли, что App_Code.dll, версия 2.5.0.0, находится в каталоге bin и имеет действительные разрешения.

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

Какова истинная причина этой ошибки и как мы можем ее исправить?

1 Ответ

0 голосов
/ 15 марта 2012

В конце концов обнаружил проблему в процессе устранения, работая в обратном направлении с помощью недавних изменений.Это было неожиданно важно (неожиданно для меня, во всяком случае), что эти развертывания являются предварительно скомпилированными, но обновляемыми веб-приложениями.Я утверждаю, что сообщение об ошибке ASP.NET было менее чем полезно при диагностике проблемы.

Оказывается, что в процессе очистки каталога сборки путем удаления специфичных для Visual Studio файлов (.sln,.vsmdi и т. Д.), Мы также удалили PrecompiledApp.Config.Поскольку приложение продолжало работать в течение некоторого времени, мы пришли к выводу, что оно не использовалось с конкретным типом прекомпиляции, который мы использовали.Очевидно, что мы ошиблись.

Наша проблема была решена путем восстановления PrecompiledApp.Config в затронутых развертываниях и обновления даты последнего изменения Web.Config, чтобы IIS смог зафиксировать это изменение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...