«Не удалось загрузить тип [x] .ViewPage <T>», несмотря на то, что решение очищается, перестраивается и присутствуют все библиотеки DLL. - PullRequest
0 голосов
/ 24 января 2012

Некоторые мои коллеги испытывают следующую странную проблему с приложением MVC2 , которое содержится в решении около дюжины библиотек классов.

Время от времени при запуске приложения с использованием IISExpress (настраивается с помощью VS2010 SP1 на вкладке «Интернет» свойств проекта) ....

'Не удалось загрузить тип [namespace.namespace] .ViewPage '

..... отобразится ошибка для представления по умолчанию, которое пытается отобразить. Решение состоит из полностью , однако удаление содержимого папки BIN вручную, перестроение и повторный запуск приложения не решают проблему. Все необходимые библиотеки DLL находятся в каталоге bin приложения MVC, и для большинства разработчиков проблем нет.

Единственный обходной путь, который мы нашли на сегодняшний день, - это удалить временные файлы asp.net с компьютера-нарушителя И очистить рабочий каталог от всех файлов, а затем выполнить «Получить конкретную версию» из TFS. Как только это будет сделано - перестройка проекта и его запуск заставит все работать снова.

Кто-нибудь может пролить свет на то, почему это иногда влияет на нас? Это редко и затронуло только несколько человек, но это действительно разочаровывает, и потратил несколько дней, пытаясь найти причину, и что-то предпринять, чтобы остановить это.

Использование VS2010 SP1 и TFS 2010 с помощью Team Explorer, машин Windows XP (к сожалению) с IIS Express. Никаких других странных или чудесных условий или странностей, о которых я могу упомянуть

1 Ответ

0 голосов
/ 23 июля 2012

Проверьте элемент pages в вашем web.config
Вы должны иметь эти атрибуты:

<configuration>
  <system.web>
    <!-- ... -->
    <pages
        validateRequest="false"
        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">
      <controls>
        <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
      </controls>
    </pages>
    <!-- ... -->
  </system.web>
</configuration>

При создании нового проекта ASP.NET MVC 2 эти атрибуты задаются в файле web.config в папке Views (а не в файле web.config в корне веб-сайта).
У меня была такая же проблема, потому что кто-то уронил этот файл.

Взгляните на эти ссылки:

Не удалось загрузить тип 'System.Web.Mvc.ViewUserControl'

Файл скрытой веб-конфигурации ASP.Net MVC.

...