Я получаю сообщение об ошибке
Не удалось загрузить тип MvcApplication
когда я пытаюсь запустить свой веб-сайт.
Как его исправить?
Я получаю сообщение об ошибке
Не удалось загрузить тип MvcApplication
когда я пытаюсь запустить свой веб-сайт.
Как его исправить?
Как бы он ни казался глупым, попробовал все, и он не работал, и, наконец, перезапустил VS2012, чтобы увидеть, как он снова работает.
- Для меня было исправлено изменение выходного пути на вкладке сборки.
Я изменил выходной путь на bin\
, и ошибка исчезла.
- Другое исправление может заключаться в том, что у вас есть неправильный запуск проекта.
Я получал ту же ошибку и вдохновлял делать все, что упоминалось здесь, а в другом месте ничего не работало. Оказалось, что я скопировал исходный код global.asax.cs из предыдущей версии проекта, у которого было другое имя. Таким образом, namespace Test
должен был быть namespace Test.WebUI
. Конечно, глупая ошибка, и я немного смущен, чтобы написать это! Но пишу в надежде, что подобная ошибка от кого-либо еще может заставить его проверить этот тривиальный аспект.
Просто создайте руководство для своего решения.
Если вы используете локальный IIS, попробуйте удалить регистрацию сайта в диспетчере IIS и затем заново создать его вручную.
[Извлечен из вопроса]
Если вы получаете эту ошибку: "Не удалось загрузить тип MvcApplication", посмотрите путь вывода вашего проекта и убедитесь, что он установлен в "bin". Проблема в том, что AspNetCompiler не может найти файлы, если они не находятся в местоположении по умолчанию.
Другим побочным эффектом изменения выходной папки является то, что вы не сможете отлаживать свой код, и в нем появляется сообщение о невозможности найти информацию о собрании.
У меня была такая же проблема, и я решил ее выполнить ниже.
Мое решение: Потому что я создал проблему! Я изменил пространство имен в Global.asax.cs
Вам также нужно изменить значение атрибута Inherits в Global.asax.
Ах это было неприятно.
Получил эту ошибку после отключения питания, и я вернулся в свой проект.
Я попытался перезапустить VS. Я попытался установить путь вывода к \bin. Я проверил свои пространства имен.
Но то, что сработало для меня, - это восстановление решения.
Восстановить решение.
Проверьте код за информацией, предоставленной в 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 );
}
}
}
Это также может случиться при запуске проекта в visual studio, если ваш IIS Express имеет/размещает старый/другой проект, используя одно и то же назначение порта.
Чтобы исправить это, вы можете изменить назначение порта для этого проекта или закрыть IIS Express.
Если вы размещаете в IIS express и вы открываете проект в двух разных местах, вы можете увидеть эту ошибку.
Решение - перейти в Project/Properties/Web/Servers
и нажать Create Virtual Directory
.
Решение для меня состояло в том, чтобы щелкнуть правой кнопкой мыши по проекту Mvc, выбрать свойства и нажать "Создать виртуальный каталог".
Появилось окно с сообщением о том, что проект был сопоставлен с неправильной папкой (он показал папку для другого проекта TFS. Он дал возможность отобразить его обратно в нужную папку.
Я получал эту ошибку, потому что я запускал проект, несмотря на некоторые ошибки времени компиляции. Этого я не заметил.
Я видел это много раз за последнее десятилетие и просто повторил. Есть много проблем, которые приводят к одной и той же ошибке.
Одной из причин является переименование файлов. Если вы работаете с файлами .cshtml, проверьте все пространства имен в этих файлах и в файле Views\web.config. Для веб-форм переименуйте Default.aspx (связанные файлы .cs и файлы конструктора автоматически переименовываются). Изменяется код, но строка Inherits в разметке - нет. Измените это вручную. Дважды проверьте страницу дизайнера. Иногда (VS2005-8?) Страница дизайнера не отражает изменения в пространстве имен. Не видел этого в 2010+.
Другая проблема заключается в том, когда все это работает в VS или на локальном ПК, но не при развертывании. Это может быть связано с тем, что среда развертывания не имеет одинаковой структуры. Например, ошибка возникает, если вы помещаете свой код в виртуальный каталог в папку приложения, но не возникает, если вы создаете новую папку приложения и размещаете там все свои файлы. Я не понимаю этого, поскольку у меня была новая дочерняя/виртуальная папка с такими же разрешениями (или я так думаю), и (я считаю) пул приложений должен работать одинаково для всего в данной папке приложения.
В моем случае у меня также была папка bin со сборками, которые обновляются из других сборок на сервере IIS. Опять же, обеспечение их запуска в отдельной папке приложения привело к успеху.
НТН
Удалить содержимое папки bin (используйте для этого файл-проводник). Перестроить.
У меня уже была bin/
на вкладке моей сборки. Я получил global.asax из другой копии проекта, но это не сработало.
Решение, которое в конечном итоге помогло мне, было удалить папку bin/
и создать новую пустую папку с тем же именем.
Я знаю, что есть много решений для этого уже, но я подумал, что просто упомянул, что решило это для меня.
Моя настройка была настроена на Debug. Смена его на Release сделала трюк для меня.
Я получаю эту проблему каждый раз, когда я сохраняю файл, который динамически компилируется (ascx, aspx и т.д.). Я жду около 8-10 секунд, потом он уходит. Это адски раздражает.
Я думал, что это, возможно, проблема с IIS Express, поэтому я попробовал встроенный сервер dev и все еще получаю его после сохранения файла. Я запускаю приложение MVC, я также использую T4MVC, возможно, это фактор...
Убедитесь, что пространство имен в global.asax.cs соответствует пространству имен вашего webapp
Я впал в это. Я прочитал и протестировал все возможные решения, которые были даны ранее. Проверка пути сборки, сборка, перестроение, очистка, перезапуск 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
И все снова работает... Странно, что эта проблема имеет такие разные возможные решения...
Убедитесь, что вам не нужно открывать проект MVC, например Файл- > Открыть веб-сайт, вместо Файл- > Открыть проект.
Для меня работала перезагрузка Visual Studio.
Я попробовал вручную перестроить, выполнить чистую и перестроить и удалить папку bin, все из которых не работают. Мой путь вывода уже был установлен в bin\
У меня была эта разочаровывающая ошибка в среде разработки в Visual Studio, и выяснилось, что причина была совсем немой. Короче, если у вас есть несколько веб-проектов/сайтов в решении: убедитесь, что порт, к которому вы пытаетесь получить доступ к веб-сайту, такой же, как и в Project Properties- > Web
В моем случае ошибка была вызвана тем, что я использовал другой порт для доступа к веб-сайту (в браузере), а проекту в решении был назначен другой порт. Чтобы объяснить немного больше, у меня было два проекта веб-сайта в моем решении Website1 (назначенный порт 8001 в ISS от Visual-Studio) и Website2 (назначенный порт 8101 в ISS Visual-Studio). Поэтому, даже если я создавал Website1, я пытался получить доступ к веб-сайту с помощью locahost: 8101.
Теперь, когда я наконец понял проблему, я вижу, что комментарий @StingyJack также касается аналогичной проблемы.
Если вы изменили пространство имен, обязательно щелкните правой кнопкой мыши и рефакторинг.
Это может произойти очень часто, если вы измените пространство имен. Верните имя своего пространства имен, как и раньше, и это должно заставить его работать!
В некоторых случаях новые созданные вами проекты по умолчанию не устанавливаются. Если вы щелкните правой кнопкой мыши на своем решении, выберите Properties
и выберите Configuration Properties
| Configuration
node слева и убедитесь, что ваш проект имеет галочку под столбцом Build
. В обычных обстоятельствах я обнаружил, что это происходит по умолчанию. В других обстоятельствах (у меня, похоже, есть несколько сложное решение для Web Api/Xamarin Android и iOS/Mvc 5, которое демонстрирует это поведение), галочка отсутствует.
Это связано с другими ответами - если ваша сборка веб-проектов недоступна, вы получаете эту ошибку. Но это может быть распространенным сценарием, тем более, что вы на самом деле компилируете свое решение - проект просто не строится.
Я получил эту ошибку, потому что мой элемент управления версиями был установлен, чтобы игнорировать мою папку bin. Очень глупо, но, возможно, кому-то это поможет.
Я столкнулся с этой проблемой, и я вижу там всевозможные ответы, но ничего не принято. Я чуть-чуть обнаружил, что просто создавая сайт, прежде чем пытаться запустить, решил мою проблему.
У меня была эта ошибка снова, и ни одна из вышеперечисленных не работала для меня. Мне пришлось удалить следующий node файл .csproj: <VisualStudio>....</VisualStudio>
. Перезагрузил VS, и он сработал.
FYI, VS смог воссоздать node, а затем я воссоздал сайт в IIS (через VS), и он отлично работал.
Надеюсь, это поможет кому-то.