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