#asp.net-mvc-3 #glimpse
#asp.net-mvc-3 #проблеск
Вопрос:
У меня есть существующий проект MVC3 (обновлен с MVC2 около 3 месяцев назад), а затем вчера добавлен Glimpse через NuGet. Когда я запустил (нажал F5) его и перешел к http://localhost:8888/Glimpse/Config что я получил, так это ошибку «Ошибка сервера в ‘/’ приложении» — ресурс не может быть найден.
Я попытался создать совершенно новый проект MVC3 и добавить туда Glimpse через NuGet, и это работает. Мой global.asax точно такой же построчно, как и мой web.config.
Согласно ELMAH, dll для Glimpse найдена и выполнена правильно, но поскольку она не наследуется от IController, поэтому она ломается. Вот снимок экрана от ELMAH:
Какие-либо подсказки?
Ответ №1:
У нас есть HttpModule, который прослушивает запросы, которые являются Glimpse /? Если HttpModule загружен, то он должен обработать запрос задолго до того, как MVC попытается разрешить «Glimpse» в качестве контроллера.
Если вы получаете ошибку, которая у вас есть, может показаться, что, возможно, что-то не так с вашей конфигурацией. Можете ли вы сравнить свою конфигурацию в вашем примере проекта, который работает, с реальным проектом, который не работает, чтобы убедиться, что все регистрации были обнаружены.
Если там все выглядит нормально, следующее, что нужно сделать, это правильно настроить, но HttpModule не регистрируется. Для выполнения регистрации мы используем:
Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(...)
Смотрите http://odetocode.com/blogs/scott/archive/2011/02/27/dynamicmoduleutility.aspx подробнее.
Учитывая, что вы обновили свое решение, я бы сказал, может быть, это что-то здесь. На всякий случай, однако, если вы не сможете его отследить, есть ли шанс, что вы сможете отправить нам сокращенную версию вашего решения, в которой есть та же проблема?
Наконец, делаете ли вы что-нибудь «из нормы»? В частности, используется другой механизм просмотра или пользовательский распознаватель зависимостей и т.д.?
Комментарии:
1. Ничего необычного (с использованием движка aspx, без IoC и т.д.), Довольно простой проект со средним уровнем CSLA. Я попытаюсь взглянуть на HttpModule.
2. В итоге я создал новую оболочку проекта и перенес свой код — и теперь это работает. Огромное спасибо!
3. Не проблема … если вы когда-нибудь узнаете, в чем разница, пожалуйста, дайте нам знать.
4. Есть идеи, как это исправить? Я в растерянности, пытаясь заставить его работать.
5. @Jason На самом деле понятия не имею. Я предполагаю, что настройки проекта между устаревшим обновлением MVC2 и новым проектом MVC3 немного отличаются. Разница может не иметь большого значения для VS 2010, но каким-то образом это важно для Glimpse — по крайней мере, в части ссылок.
Ответ №2:
У меня также была эта проблема, оказывается, моя проблема заключалась в том, что я удалил замок.Ядро и замок.Ссылки DynamicProxy. Я выполнил
Uninstall-Package Glimpse
Uninstall-Package Castle.Core
Uninstall-Package Castle.DynamicProxy
за которым следует
Install-Package Glimpse
Из консоли диспетчера пакетов, и он отсортировался сам.
Комментарии:
1. В моем случае у него нет замка (или какого-либо DI, если на то пошло).
2. @Johannes Тогда это может быть вашей проблемой, Glimpse зависит от Castle. Попробуйте удалить любую ссылку на Castle из вашего packages.config и переустановите Glimpse, как указано выше.
3. Я так не думаю. В СОВЕРШЕННО НОВОМ проекте с MVC3 он отлично работает без каких-либо ссылок на Castle или какой-либо DI.
4. Это очень странно, Йоханнес, я только что проверил там и, установив Glimpse в совершенно новый проект MVC 3, определенно отключает Castle и добавляет ссылки на него, вот вывод из консоли менеджера пакетов pastebin.com/uT4cdvPq
5. Просто так, ребята, выпускайте версию 0.81, в которой планируется удалить зависимости Nuget и dll от Castle… Это должна быть только одна dll и один пакет. Надеюсь, это поможет в этих случаях.
Ответ №3:
Начиная с версии 0.83, Glimpse больше не использует URL config / config (или любой другой URL glimpse / *).
Вместо этого, пожалуйста, перейдите на Glimpse.axd, чтобы изменить настройки Glimpse.
Комментарии:
1. Я получаю «ресурс не найден» по URL axd