Не мог загрузить тип 'Система. Сеть. Mvc. ViewUserControl <SOMETYPE>'

Я пытаюсь развернуть проект (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>
{
}

и используйте его вместо этого в <% заголовок Управления. Затем это работает, как это должно.

Я пропускаю что-то?

ОБНОВЛЕНИЕ

Я развертываю приложение на двух шагах (на сервере):

  1. Восстановите решение VS из источника с помощью командной строки MSBuild (для.NET 4)
  2. Запуститесь пользовательская msbuild задача (имейте publih.msbuild файл для этого), который выполняет две цели: Цели = "ResolveReferences; _CopyWebApplication"
10
задан Evgenyt 10 May 2010 в 14:38
поделиться

3 ответа

Не удалось выяснить, почему, но помогло следующее (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

5
ответ дан 3 December 2019 в 18:32
поделиться

Я думаю, что у механизма просмотра есть проблемы с компиляцией строго типизированного базового класса в атрибуте 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>
15
ответ дан 3 December 2019 в 18:32
поделиться

Возможно, на сервере неправильно установлена ASP.NET MVC. Я предлагаю удалить MVC и переустановить с помощью Web Platform Installer. У меня тоже были проблемы, когда я устанавливал с помощью загруженных файлов настроек, поэтому я удалил все и перешел на Web Platform Installer.

Другим предложением было бы сделать новый свежий сервер - можно виртуальный - и попробовать там.

Также может помочь перестройка решения и проверка того, что web.config в порядке.

Также попробуйте, не показывает ли инструмент MvcDiagnostics.aspx каких-либо отклонений. Посмотрите эту статью в блоге

Дайте нам знать, если что-то поможет.

0
ответ дан 3 December 2019 в 18:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: