Ошибка: "Не удалось загрузить тип MvcApplication"

Я получаю сообщение об ошибке

Не удалось загрузить тип MvcApplication

когда я пытаюсь запустить свой веб-сайт.

Как его исправить?

Ответ 1

Как бы он ни казался глупым, попробовал все, и он не работал, и, наконец, перезапустил VS2012, чтобы увидеть, как он снова работает.

Ответ 2

- Для меня было исправлено изменение выходного пути на вкладке сборки. Я изменил выходной путь на bin\, и ошибка исчезла.

- Другое исправление может заключаться в том, что у вас есть неправильный запуск проекта.

Ответ 3

Я получал ту же ошибку и вдохновлял делать все, что упоминалось здесь, а в другом месте ничего не работало. Оказалось, что я скопировал исходный код global.asax.cs из предыдущей версии проекта, у которого было другое имя. Таким образом, namespace Test должен был быть namespace Test.WebUI. Конечно, глупая ошибка, и я немного смущен, чтобы написать это! Но пишу в надежде, что подобная ошибка от кого-либо еще может заставить его проверить этот тривиальный аспект.

Ответ 4

Просто создайте руководство для своего решения.

Если вы используете локальный IIS, попробуйте удалить регистрацию сайта в диспетчере IIS и затем заново создать его вручную.

Ответ 5

[Извлечен из вопроса]

Если вы получаете эту ошибку: "Не удалось загрузить тип MvcApplication", посмотрите путь вывода вашего проекта и убедитесь, что он установлен в "bin". Проблема в том, что AspNetCompiler не может найти файлы, если они не находятся в местоположении по умолчанию.

Другим побочным эффектом изменения выходной папки является то, что вы не сможете отлаживать свой код, и в нем появляется сообщение о невозможности найти информацию о собрании.

Ответ 6

У меня была такая же проблема, и я решил ее выполнить ниже.

  • Перейти к свойствам проекта
  • На вкладке "Build" установите путь вывода к "bin \"

Ответ 7

Мое решение: Потому что я создал проблему! Я изменил пространство имен в Global.asax.cs

Вам также нужно изменить значение атрибута Inherits в Global.asax.

Ответ 8

Ах это было неприятно.

Получил эту ошибку после отключения питания, и я вернулся в свой проект.

Я попытался перезапустить VS. Я попытался установить путь вывода к \bin. Я проверил свои пространства имен.

Но то, что сработало для меня, - это восстановление решения.

Восстановить решение.

Ответ 9

Проверьте код за информацией, предоставленной в global.asax. Они должны правильно указывать на класс в своем коде.

sample global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="MyApplicationNamespace.MyMvcApplication" Language="C#" %>

пример кода:

   namespace MyApplicationNamespace
    {
        public class MyMvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start( )
            {
                AreaRegistration.RegisterAllAreas( );
                FilterConfig.RegisterGlobalFilters( GlobalFilters.Filters );
                RouteConfig.RegisterRoutes( RouteTable.Routes );
                BundleConfig.RegisterBundles( BundleTable.Bundles );
            }
        }
    }

Ответ 10

  • Щелкните правой кнопкой мыши в проекте в рамках отказавшего решения.
  • Выгрузить проект
  • Обновить проект
  • Проект сборки
  • Re-build Solution

Ответ 11

Это также может случиться при запуске проекта в visual studio, если ваш IIS Express имеет/размещает старый/другой проект, используя одно и то же назначение порта.

Чтобы исправить это, вы можете изменить назначение порта для этого проекта или закрыть IIS Express.

Ответ 12

Если вы размещаете в IIS express и вы открываете проект в двух разных местах, вы можете увидеть эту ошибку.

Решение - перейти в Project/Properties/Web/Servers и нажать Create Virtual Directory.

Ответ 13

Решение для меня состояло в том, чтобы щелкнуть правой кнопкой мыши по проекту Mvc, выбрать свойства и нажать "Создать виртуальный каталог".

Появилось окно с сообщением о том, что проект был сопоставлен с неправильной папкой (он показал папку для другого проекта TFS. Он дал возможность отобразить его обратно в нужную папку.

Ответ 14

Я получал эту ошибку, потому что я запускал проект, несмотря на некоторые ошибки времени компиляции. Этого я не заметил.

Ответ 15

Я видел это много раз за последнее десятилетие и просто повторил. Есть много проблем, которые приводят к одной и той же ошибке.

Одной из причин является переименование файлов. Если вы работаете с файлами .cshtml, проверьте все пространства имен в этих файлах и в файле Views\web.config. Для веб-форм переименуйте Default.aspx (связанные файлы .cs и файлы конструктора автоматически переименовываются). Изменяется код, но строка Inherits в разметке - нет. Измените это вручную. Дважды проверьте страницу дизайнера. Иногда (VS2005-8?) Страница дизайнера не отражает изменения в пространстве имен. Не видел этого в 2010+.

Другая проблема заключается в том, когда все это работает в VS или на локальном ПК, но не при развертывании. Это может быть связано с тем, что среда развертывания не имеет одинаковой структуры. Например, ошибка возникает, если вы помещаете свой код в виртуальный каталог в папку приложения, но не возникает, если вы создаете новую папку приложения и размещаете там все свои файлы. Я не понимаю этого, поскольку у меня была новая дочерняя/виртуальная папка с такими же разрешениями (или я так думаю), и (я считаю) пул приложений должен работать одинаково для всего в данной папке приложения.

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

НТН

Ответ 16

Удалить содержимое папки bin (используйте для этого файл-проводник). Перестроить.

Ответ 17

У меня уже была bin/ на вкладке моей сборки. Я получил global.asax из другой копии проекта, но это не сработало.

Решение, которое в конечном итоге помогло мне, было удалить папку bin/ и создать новую пустую папку с тем же именем.

Ответ 18

Я знаю, что есть много решений для этого уже, но я подумал, что просто упомянул, что решило это для меня.

Моя настройка была настроена на Debug. Смена его на Release сделала трюк для меня.

Ответ 19

Я получаю эту проблему каждый раз, когда я сохраняю файл, который динамически компилируется (ascx, aspx и т.д.). Я жду около 8-10 секунд, потом он уходит. Это адски раздражает.

Я думал, что это, возможно, проблема с IIS Express, поэтому я попробовал встроенный сервер dev и все еще получаю его после сохранения файла. Я запускаю приложение MVC, я также использую T4MVC, возможно, это фактор...

Ответ 20

Убедитесь, что пространство имен в global.asax.cs соответствует пространству имен вашего webapp

Ответ 21

Я впал в это. Я прочитал и протестировал все возможные решения, которые были даны ранее. Проверка пути сборки, сборка, перестроение, очистка, перезапуск IIS и VS2015, переустановка всех пакетов nuget, их сборка по одному и т.д.,...

Я вдруг вспомнил, что VS хранит некоторые временные файлы ASP в системных папках... Я думаю, что я должен попробовать, в конце концов, это может стать хуже. Поэтому я опустел:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files

И все снова работает... Странно, что эта проблема имеет такие разные возможные решения...

Ответ 22

Убедитесь, что вам не нужно открывать проект MVC, например Файл- > Открыть веб-сайт, вместо Файл- > Открыть проект.

Ответ 23

Для меня работала перезагрузка Visual Studio.

Я попробовал вручную перестроить, выполнить чистую и перестроить и удалить папку bin, все из которых не работают. Мой путь вывода уже был установлен в bin\

Ответ 24

У меня была эта разочаровывающая ошибка в среде разработки в Visual Studio, и выяснилось, что причина была совсем немой. Короче, если у вас есть несколько веб-проектов/сайтов в решении: убедитесь, что порт, к которому вы пытаетесь получить доступ к веб-сайту, такой же, как и в Project Properties- > Web

В моем случае ошибка была вызвана тем, что я использовал другой порт для доступа к веб-сайту (в браузере), а проекту в решении был назначен другой порт. Чтобы объяснить немного больше, у меня было два проекта веб-сайта в моем решении Website1 (назначенный порт 8001 в ISS от Visual-Studio) и Website2 (назначенный порт 8101 в ISS Visual-Studio). Поэтому, даже если я создавал Website1, я пытался получить доступ к веб-сайту с помощью locahost: 8101.

Теперь, когда я наконец понял проблему, я вижу, что комментарий @StingyJack также касается аналогичной проблемы.

Ответ 25

Если вы изменили пространство имен, обязательно щелкните правой кнопкой мыши и рефакторинг.

Ответ 26

Это может произойти очень часто, если вы измените пространство имен. Верните имя своего пространства имен, как и раньше, и это должно заставить его работать!

Ответ 27

В некоторых случаях новые созданные вами проекты по умолчанию не устанавливаются. Если вы щелкните правой кнопкой мыши на своем решении, выберите Properties и выберите Configuration Properties | Configuration node слева и убедитесь, что ваш проект имеет галочку под столбцом Build. В обычных обстоятельствах я обнаружил, что это происходит по умолчанию. В других обстоятельствах (у меня, похоже, есть несколько сложное решение для Web Api/Xamarin Android и iOS/Mvc 5, которое демонстрирует это поведение), галочка отсутствует.

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

Ответ 28

Я получил эту ошибку, потому что мой элемент управления версиями был установлен, чтобы игнорировать мою папку bin. Очень глупо, но, возможно, кому-то это поможет.

Ответ 29

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

Ответ 30

У меня была эта ошибка снова, и ни одна из вышеперечисленных не работала для меня. Мне пришлось удалить следующий node файл .csproj: <VisualStudio>....</VisualStudio>. Перезагрузил VS, и он сработал.

FYI, VS смог воссоздать node, а затем я воссоздал сайт в IIS (через VS), и он отлично работал.

Надеюсь, это поможет кому-то.