Я получаю эту проблему на очень конкретной странице, и я не уверен, как это исправить. Я уже нашел несколько вопросов SO (например, Поврежденная сборка ASP.NET Не удалось загрузить файл или сборку App_Web_* и Не удалось загрузить файл или сборку App_Web_xxxxxxxx или одну из его зависимостей) и пробовали их решения, но безрезультатно.
Подводя итог, вот что я пробовал:
Установите
batch="false" numRecompilesBeforeAppRestart="50"
в файле web.config.Перезапущен веб-сайт IIS, на котором размещен этот веб-сайт.
Удалены временные файлы ASP.NET в
%windir%\Framework64\v4.0.30319\Temporary ASP.NET Files
Переназначен
... и любая комбинация вышеперечисленного, но безрезультатно. Он отлично работает, когда я пытаюсь запустить сайт из VS и когда я развертываю сайт без предварительной компиляции.
Вот некоторые характеристики окружающей среды:
Предварительная компиляция выполняется через проект веб-развертывания. Неважно, выполнял ли прекомпиляцию TFS или я: проблема сохраняется
Версия .NET — 4.0.30319.
Настройки AppPool: конвейерный режим интегрирован в .NET 4.0
Это конкретная ошибка, которая возникает, когда я открываю Customer.aspx
:
Could not load file or assembly 'App_Web_qxcfa0wv, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
На этой странице зарегистрирован элемент управления UserManagement.ascx
, расположенный по адресу ~/Controls/UserManagement.ascx
.
Этот элемент управления зарегистрировал другой элемент управления с именем UserDialog.ascx
, расположенный по адресу ~/Controls/Dialogs/UserControl.ascx
.
И этот последний элемент управления использует элемент управления ~/Controls/User.ascx
, который инкапсулирует данные пользователя. Больше зависимостей нет.
Согласно трассировке стека, ошибка находится в строке 1 UserDialog.ascx
(директива <%@ Control ... %>
).
Я в растерянности. Я предполагаю, что это не работает, потому что ~/Controls/Dialogs/UserDialog.ascx
требует элемента управления, который находится в родительской папке, что приводит к некоторым устаревшим ссылкам во время выполнения. Похоже на описание проблемы в первом вопросе SO.
Однако я не могу проверить это, просто исключив элемент управления ~/Controls/User.ascx
, потому что тогда я получаю ошибки циклической ссылки в другом элементе управления, который используется в ~/Control/UserDialog.ascx
, хотя этот элемент управления также не регистрирует никаких других элементов управления. Только регистрация пространства имен, которая используется большинством других элементов управления.
Я бы сказал, что циклическая ссылка и ошибка связаны, но я не могу сказать, как именно. Не без рисования всего графика зависимостей.
Любые идеи?
Заранее спасибо!
~/Controls/
и/или~/Controls/Dialogs/
? - person robertc   schedule 12.04.2012~/Controls/
существует, а папки~/Controls/Dialogs/
нет. Странно, потому что папка~/Controls/Lists/
действительно существует, но кажется, что единственная причина, по которой она была создана, заключается в том, что она содержит страницу ASPX. В VS2010 папка~/Controls/Dialogs/
содержит только файлы ASCX, что может объяснить, почему ее нет в сборке... - person user849924   schedule 13.04.2012placeholder.html
в каждом каталоге, который содержал только файлыascx
, чтобы каталоги создавались на сервере. - person robertc   schedule 13.04.2012