Помилка: «Не вдалося завантажити тип MvcApplication»


240

Я отримую помилку

Не вдалося завантажити тип MvcApplication

коли я намагаюся запустити свій веб-сайт.

Як це виправити?


35
Я отримав цю помилку випадковим чином одного дня на нашому сервері збірки. виконавши ручну перебудову, це вирішило.
Зак

1
Шлях виводу встановлений у властивості проекту на вкладці збірки
silasdavis

8
видаліть файл global.asax і додайте новий, і у вас все буде в порядку.
DotNetGeek

4
Виявляється, новий проект не був обраний в активній конфігурації для збірки.
JGeerWM

4
Якщо ви нещодавно додали проект або якщо ви нещодавно змінили конфігурацію публікації (тобто перейшли з AnyCPU на x64), можливо, проект не будується під час його запуску. Перейдіть у розділ BUILD-> CONFIGURATION MANAGER і встановіть прапорець у стовпці build. Щойно у мене виникла ця проблема. Ви також помітите, що ваші точки проходу є чіткими колами під час запуску програми. Я думаю, що це результат збірки за замовчуванням для .net 4.5.1 на архітектурі процесора, що надає перевагу 32-бітовому. Проблема лише, якщо ви перевірите x64
David Bridge

Відповіді:


115

Як би це ні звучало, спробував усе, і це не вийшло, і, нарешті, перезапустив VS2012, щоб побачити його знову.


1
LMFAO, працював і для мене після того, як випробував усе, що було сказано тут, і не працював! Дякую та +1!
Юстме

Тут же питання. Помилка з’явилася після злиття і не усунеться, поки VS2012 не буде перезапущено.
StuartQ

1
Для мене те, що могло статися, що порт використовувався другим екземпляром Visual Studio, у якого не було складено проект.
Клей Ленхарт

Працював і для мене. Який смітник.
PAWAN RAJ Shakya

Через 5 років VS2017 і це все ще рішення. : /
Сагів бг

105

-Для мене виправленням було змінити вихідний шлях на вкладці збірки. Я змінив вихідний шлях bin\і помилка пішла.

-Іншим виправленням може бути те, що ви неправильно встановили проект запуску.


8
Це було і нашим питанням. Раніше було встановлено щось на кшталт Debug \ x86 \ bin
t3rse

4
ХА! Це вже другий раз за два роки, коли я був у цій статті з цією проблемою, перший раз це була найкраща відповідь, вдруге - ця відповідь.
Бен Леш

1
Дякую! Це теж мене покусало. Я змінив платформу, щоб очистити деякі попередження, і вихідний шлях змінився, не знаючи про це.
camainc

6
Це була правильна відповідь для мене ... Будь-яка ідея про те, чому Visual Stupido поводиться саме так?
andreapier

1
Так, це було все. Якщо змінити `bin`, все працює так, як очікувалося. @andreapier: Так, VS2012 теж здається вести себе таким дурним способом. Хтось це виправить якнайшвидше! :)
тепер той, хто не повинен бути названий.

82

Я отримував таку ж помилку і не дивлячись на те, щоб робити все, що згадувалося тут, і в інших місцях нічого не працювало. Виявилося, що я скопіював вихідний код global.asax.cs з попередньої версії проекту, яка мала іншу назву. Так namespace Testмало бути namespace Test.WebUI. Дурна помилка, звичайно, і мені трохи соромно писати це! Але писати з надією, що подібна помилка з боку будь-кого іншого може змусити його перевірити і цей тривіальний аспект.


Спасибі, Випулу. Я щойно зробив те саме і подумав, що в результаті втратив багато роботи. Просто зміна імені простору імен врятувала мій бекон
xiecs

2
Я просто зробив те саме. Я відкрив Global.asax у текстовому редакторі та виправив проблему простору імен. Спасибі
Кайван Карим

6
Я просто зробив те саме. Просто для детального розгляду для інших: спочатку у мене був тестовий проект під назвою "MvcApplication1", який створювався автоматично. Потім я зробив глобальну заміну простору імен "MvcApplication" на "MyTest". У Global.asax у блокноті мені потрібно було змінити на Inherits = "MyTest.MvcApplication"
PabloInNZ

Якби був спосіб дарувати золото, я б
shanabus

53

Просто зробіть вручну на основі свого рішення.

Якщо ви використовуєте локальний IIS, спробуйте видалити реєстрацію веб-сайту в менеджері IIS, а потім відтворити його вручну.


Це був переможець для мене, я скинув сайт з репо і налаштував iis, але ніколи не робив складання в IIS
Ентоні Майн

31

[Витяг із запитання]

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

Іншим побічним ефектом зміни вихідної папки є те, що ви не зможете налагоджувати свій код, і з'являється повідомлення про те, що інформацію про збірку неможливо знайти.


1
Це здається трохи дивним, коли він зазвичай розділений між різними конфігураціями збірки.
nicodemus13

За замовчуванням це розділено, але багато людей змінюють їх в одну папку, так що випуск та налагодження знаходяться в одному і тому ж місці для іншого проекту, який посилається на вихід (інсталятори тощо).
StingyJack

Цікаво, чи властива ця проблема IIS Express. У всякому разі, чому я зрозумів це, тому що це просто угвинчується на один з наших нових стартерів: я змінився binдо bin\Debugі , bin\Releaseале старі файли були все ще в моїй binпапці , так що я не бачив жодних - яких проблем. Звичайно, якщо ви чисте оформлення замовлення і складання цих файлів для вас не існує, тому це підірветься.
Барт читати

15

У мене було те саме питання, і я вирішив його, виконавши нижче кроки

  1. Перейдіть до властивостей проекту
  2. На вкладці "Збірка" встановіть вихідний шлях у "бін \"

1
Дякую вам за це, це вирішило проблему, з якою у мене не встановлено точки прориву!
Кріс

Це для мене працювало. Я відкрив це сам, але все одно дякую.
Олександр

О ні! Це економить день.
SKE

14

Ах, це дратувало.

Отримала цю помилку після відключення електроенергії, і я повернувся до свого проекту.

Я спробував перезапустити VS. Я спробував встановити вихідний шлях до \ bin. Я перевірив пробіли своїх імен.

Але те, що для мене спрацювало, було відновити рішення.

Перебудувати рішення !!!


13

Моє рішення: Тому що я створив проблему! Я змінив простір імен на Global.asax.cs

Також потрібно змінити значення атрибута Inherits у Global.asax.


3
У мене теж була ця проблема. Я б хотів, щоб Visual Studio переробляв простори імен в атрибутах спадку в розмітці - як і класи.
csharpforevermore

Те ж саме. Перейменуючи простори імен, переконайтесь, що ви переключили-alt-F10 або клацніть правою кнопкою миші, щоб перейменувати, і вона оновить усі примірники для вас.
Роб

Це працювало для мене, але важко було знайти, де реалізувати рішення. Я зробив "Знайти всіх", щоб отримати доступ до файлу Global.asax, тому що двічі клацніть по Global.asax в редакторі Visual Studio, ви отримуєте файл Global.asax.cs, який фактично є кодом за файлом .asax. Зверніть увагу на розширення .cs Отже: CTRL-F і шукайте Global.asax (без .cs) та змініть спадщину відповідно до вашого простору імен.
GerardV

9

Перевірте код за інформацією, що міститься у 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 );
            }
        }
    }

7
  1. Клацніть правою кнопкою миші на проект в рамках рішення, яке не вдається.
  2. Розвантажити проект
  3. Перезавантажити проект
  4. Створити проект
  5. Реконструкція рішення

5

Це також може статися під час запуску проекту у візуальній студії, якщо ваш IIS Express має / розміщує старий / інший проект, використовуючи те саме призначення порту.

Щоб виправити це, ви можете змінити призначення порту для цього проекту або закрити IIS Express.


5

Якщо ви розміщуєте в IIS express і відкриваєте проект у двох різних місцях, ви можете побачити цю помилку.

Рішення - перейти до Project/Properties/Web/Serversта натиснути Create Virtual Directory.


4

Для мене рішенням було клацнути правою кнопкою миші проект Mvc, вибрати властивості та натиснути Створити віртуальний каталог.

З'явилося вікно повідомлення про те, що проект був перенесений у неправильну папку (він показав папку для іншого проекту TFS . Це дало можливість повернути його до потрібної папки.


1
Дякую за пораду, причиною для мене було те, що я нещодавно переїхав tfs. Мені потрібно було скасувати папку рішення та відобразити її знову, щоб програма працювала!
adhie

4

Я вже мав bin/у вкладці збірки. Я отримав global.asax з іншої копії проекту, але це не вийшло.

Рішення, яке нарешті працювало для мене, полягало в тому, щоб видалити bin/папку та створити нову порожню папку з тим же ім’ям.


1
Це не дає відповіді на запитання. Щоб критикувати або вимагати роз'яснення у автора, залиште коментар під їх публікацією - ви завжди можете коментувати свої власні публікації, і як тільки у вас буде достатня репутація, ви зможете коментувати будь-яку публікацію .
JLRishe

@brasofilo Я міг би здійснити неправильний дзвінок, але зважаючи на сильну нестачу інформації в оригінальному запитанні, велика ймовірність, що це не виправлення питання ОП, і ця відповідь є достатньо короткою, щоб її можна було додати як коментар. З іншого боку, оригінальне запитання було розміщено дуже давно, і тут є відповідь на тонну "це те, що працювало на мене", тому це важкий дзвінок. Це питання та його відповіді можуть потребувати певного очищення.
JLRishe

@JLRishe, ну так, так це безлад Q & A. Ця відповідь може бути навіть дублікатом другого найбільш популярного, але я не впевнений. Я позначу Q, запитуючи про замовлення мінімум 10 повторень.
brasofilo

4

Я знаю, що для цього вже існує багато рішень, але я подумав, що я просто згадаю, що вирішив це для мене.

У моїй конфігурації було встановлено налагодження. Змінивши його на Release, для мене виправдався трюк.


2
Змінив його до випуску, і він спрацював ... змінив його на налагодження, і він продовжував працювати ... дякую.
Пол Захра

3

Я отримував цю помилку, оскільки я запускав проект, незважаючи на деякі помилки компіляції. Цього я не помітив.


Не помітили, оскільки у списку помилок "кричуще-кричуще" сказано, що це ЩАСНО !!!! Дякую.
CindyH

3

Видаліть вміст папки із бінами сайту (використовуйте для цього провідник файлів). Перебудувати.


3

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

Я раптом згадав, що 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

І все знову працює ... Дивно, що ця проблема має такі різні можливі рішення ...


3

Я бачив це багато разів за останнє десятиліття і просто це було знову. Існує багато проблем, які призводять до однієї помилки.

Однією з причин є перейменування файлів. Якщо ви працюєте з файлами .cshtml, перевірте всі простори імен у цих файлах та у файлі Views \ web.config. Для веб-форм перейменуйте Default.aspx (пов'язані .cs та файли дизайнера автоматично перейменовані). Код змінюється, але рядок Inherits у розмітці не відповідає. Змініть її вручну. Двічі перевірте сторінку дизайнера. Іноді (VS2005-8?) Сторінка дизайнера не відображає змін у просторі імен. Цього не бачив у 2010 році.

Інша проблема полягає в тому, коли це працює в VS або на вашому локальному ПК, але не під час розгортання. Це може бути тому, що середовище розгортання не структурується однаково. Наприклад, помилка виникає, якщо ви розміщуєте свій код у віртуальному каталозі під папкою додатків, але він не виникає, якщо ви створюєте нову папку програми та розміщуєте там усі свої файли. Я цього не розумію, оскільки у мене була встановлена ​​нова дочірня / віртуальна папка з однаковими дозволами (або так я вважаю) і (я вважаю) пул додатків повинен працювати однаково для всіх у певній папці додатків.

У моєму випадку я також мав папку bin з збірками, які оновлюються від інших збірок на сервері IIS. Знову ж таки, переконання, що вони виконуються в окремій папці програм, призвело до успіху.

HTH


2

Я отримую цю проблему щоразу, коли я зберігаю файл, який динамічно збирається (ascx, aspx тощо). Я чекаю близько 8-10 секунд, потім він проходить. Це пекельно дратує.

Я подумав, що це, можливо, проблема IIS Express, тому я спробував на вбудованому сервері розробників, і досі отримую його після збереження файлу. Я запускаю додаток MVC, я також використовую T4MVC, можливо, це є фактором ...


2

У мене була ця розчарована помилка в середовищі розробки в студії Visual, і виявилося, що причина була дуже німою. Якщо коротко, якщо у вас є кілька розроблених веб-проектів / сайтів: переконайтеся, що порт, до якого ви намагаєтесь отримати доступ до веб-сайту, такий самий, як і налаштований у Project Properties-> Web

У моєму випадку помилка була викликана тим, що я використовував інший порт для доступу до веб-сайту (у браузері), тоді як проект, що розв'язувався, був призначений іншим портом. Щоб пояснити трохи більше, у мене було два проекти веб-сайтів у моєму рішенні Website1 (призначений порт 8001 в ISS Visual-Studio) та Website2 (призначений порт 8101 в ISS від Visual-Studio). Тож, хоча я будував Website1, я намагався отримати доступ до веб-сайту за допомогою locahost: 8101.

Тепер, коли я нарешті зрозумів проблему, я бачу, що коментар @ StingyJack також вирішує подібну проблему.


2

Переконайтесь, що простір імен у вашому global.asax.cs відповідає простору імен вашого веб-сайту


2

У мене знову з’явилася ця помилка, і жодне з перерахованого вище не працювало для мене. Я повинен був вилучити наступний вузол в .csproj файлу: <VisualStudio>....</VisualStudio>. Перезавантажили VS і воно спрацювало.

FYI, VS змогла відтворити вузол, і тоді я відтворив веб-сайт у IIS (через VS), і він працював чудово.

Сподіваємось, це комусь допоможе.


1

Переконайтесь, що вам не доведеться відкривати проект MVC, як-от File-> Open Web site, а замість цього використовується File-> Open Project .


1

Що для мене спрацювало - це перезапуск Visual Studio.

Я спробував вручну відновити, виконавши очищення та відновлення та видаливши папку бін, і все це не вийшло. Мій шлях виводу вже встановлено у бін \


Я зробив перебудову на рівні рішення, але помітив, що папка для сміття мого проекту була порожньою. Я створив лише проект, і раптом у мене була заселена папка. Я запустив проект, і він спрацював.
MrBoJangles

1

Якщо ви змінили область імен, переконайтесь, що клацніть правою кнопкою миші та рефактор.


1

Це може траплятися дуже часто, якщо ви зміните простір імен. Поверніть ім’я свого простору імен, як раніше, і це повинно змусити його працювати!


1

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

Це пов'язано з іншими відповідями - якщо збірка вашого веб-проекту недоступна, ви отримуєте цю помилку. Але це може бути загальним сценарієм, тим більше, що ви фактично компілюєте своє рішення - проект просто не будується.


1

Я отримав цю помилку, оскільки мій контроль версій став ігнорувати мою папку бін . Дуже дурний, але, можливо, хтось інший піде на користь.


1
Чи не хочете ви ігнорувати папку bin разом з obj та іншими речами, які побудовані та не входять до вихідного коду?
MrBoJangles

Зазвичай, так. Але на цьому конкретному веб-сайті це був єдиний спосіб проштовхувати елементи на сервер. Можливо, я мав би зробити свою відповідь більш загальною.
Brent Wagoner

Я повністю розумію такі особливі обставини.
MrBoJangles

1

Я зіткнувся з цією самою проблемою і бачу там всілякі відповіді, але нічого не було прийнято. Я трохи пізнав, що просто побудова веб-сайту перед тим, як спробувати запустити, вирішила мою проблему.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.