Я пытаюсь развернуть проект (VS2010) ASP.NET MVC 2 Выиграть Сервер 2 008 R2
Это работает отлично над dev машиной. Но странная ошибка происходит в Server 2008 R2: Когда .ascx файл имеет заголовок, который использует универсальный тип:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<MyProj.Web.Models.RangeViewModel>" %>
Отчеты о сервере не Могли загрузить тип 'Система. Сеть. Mvc. ViewUserControl <MyProj. Сеть. Модели. RangeViewModel>'.
Но когда я объявляю где-нибудь в .cs типе файла как
public class AA : System.Web.Mvc.ViewUserControl<MyProj.Web.Models.RangeViewModel>
{
}
и используйте его вместо этого в <% заголовок Управления. Затем это работает, как это должно.
Я пропускаю что-то?
ОБНОВЛЕНИЕ
Я развертываю приложение на двух шагах (на сервере):
Не удалось выяснить, почему, но помогло следующее (web.config):
<pages
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
Первоначально было найдено подобное для asp.net mvc 1
Я думаю, что у механизма просмотра есть проблемы с компиляцией строго типизированного базового класса в атрибуте Inherit. У меня была та же проблема, и обновление раздела «страницы» Web.Config помогло:
<pages
validateRequest="false"
pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
<controls>
<add assembly="System.Web.Mvc, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
</controls>
<!-- rest of your pages section -->
</pages>
Возможно, на сервере неправильно установлена ASP.NET MVC. Я предлагаю удалить MVC и переустановить с помощью Web Platform Installer. У меня тоже были проблемы, когда я устанавливал с помощью загруженных файлов настроек, поэтому я удалил все и перешел на Web Platform Installer.
Другим предложением было бы сделать новый свежий сервер - можно виртуальный - и попробовать там.
Также может помочь перестройка решения и проверка того, что web.config в порядке.
Также попробуйте, не показывает ли инструмент MvcDiagnostics.aspx каких-либо отклонений. Посмотрите эту статью в блоге
Дайте нам знать, если что-то поможет.