Повідомлення про помилку аналізатора: Не вдалося завантажити тип "TestMvcApplication.MvcApplication"


152

Я отримую таку помилку на одному з наших виробничих серверів. Не знаєте, чому він працює на сервері DEV?

Опис помилки аналізатора : сталася помилка під час розбору ресурсу, необхідного для обслуговування цього запиту. Перегляньте наведені нижче конкретні дані про помилку розбору та внесіть відповідні зміни у вихідний файл.

Повідомлення про помилку аналізатора : Не вдалося завантажити тип "TestMvcApplication.MvcApplication".

Помилка джерела :

Рядок 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Language = "C #"%>

Вихідний файл: /global.asax Рядок: 1

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

Мені також потрібно зазначити, що це опублікований код, тому все складено. Чи може щось не так у моїх настройках компілятора?



15
Вийдіть із Visual Studio та перезапустіть її для мене.
RickAndMSFT

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

Це сталося зі мною при розгортанні раніше працюючої програми. Щось у IIS (7) потрапило у поганий стан; скидання IIS виправило проблему.
БернсБА

Відповіді:


169

Жодна з інших відповідей не працювала на мене. Я усунув свою помилку, змінивши вихідний шлях веб-проекту. У мене було встановлено bin \ debug, але веб-проект не працює, якщо вихідний шлях не встановлений просто "bin"


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

3
+1 Це була і моя проблема. Повідомлення про помилку та допомогу щодо цього в основному не існує. Дякую.
Нолдорін

4
Для мене bin \ давав помилку, я змінив його лише на бін. і це спрацювало.
Нану

1
Для мене проблема полягала в тому, що я випадково вибрав x86 як активну платформу, і для цієї конфігурації налаштування проекту були неправильними (Bin \ Debug \ x86). Повернення до будь-якого процесора усунуло проблему. Але зміна вихідного шляху теж спрацювало.
Ларс Уденгаард

13
Отже, зміна вихідного шляху з bin \ Debug \ у bin видаляє для мене помилку. Але справжнє питання: "Чому bin \ Debug не працює в першу чергу?" Коли я будую конфігурацію налагодження чи випуску, я хочу, щоб файли генерувались у відповідній директорії бін.
Ellesedil

96

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

Щоб виправити це, клацніть правою кнопкою назву проекту, в даному випадку «TestMvcApplication» і натисніть кнопку збірки .

Це змушує код скомпілювати перед його запуском. Не запитуйте мене, чому, але це було вирішенням 100% часу для мене.


4
+1 мені теж. І я спробував низку речей, а під "речами" маю на увазі "дикі здогадки". Хороша відповідь!
Боб Кауфман

У моєму випадку я мав IIS, який вказував на MVC-сайт, який раніше не будувався. До. Очевидно, будуючи це, це зафіксувало.
Едгар

5
Я також отримав цю помилку під час зміни назви проекту, але забув змінити простір імен, який використовує global.asax.cs.
Прайс

1
Ви джентльмен і сер, навіть не думали робити це на цьому. Дякую!
Бен Блек

2
У моєму випадку мій проект чомусь не був налаштований на створення властивостей конфігурації рішення: i.imgur.com/kp73sGQ.png
Блок Метью

24

Я виявив, що коли ви змушені використовувати Менеджер конфігурацій для запуску під x86 або будь-яким іншим, ніж стандартний проект "поза коробкою", IDE створює купу підкаталогів під папкою бін для веб-проекту.

Як тільки це почнеться, якщо сервер Cassini запущений, то проект не працює належним чином.

Я виправив це, зайшовши у властивості Веб-проекту -> Налаштуйте налаштування та змінивши вихідний шлях для бін \

Потім відновіть і все працює як слід.


Бінго, це рішення, яке працювало і для мене. Дякую!
moshjeier

Також працював і для мене - це не помилка?
Метт Вілько

І перевірте, чи перевіряється CheckBox на збірку
Даніель Бішар

Якщо ви коли-небудь бували в штаті Огайо, тому що я купую вам 10 сортів пива, більше 3 годин переглядали різні пропозиції
Ендрю післяобіднього дня - захоплення Хайда

9

Після довгого жорсткого погляду я натрапив на справжню проблему тут.

Асамблеї були пошкоджені клієнтом FTP, який я використовував для завантаження файлів у розміщене середовище.

Я змінив FTP-клієнта і все працює за призначенням.


9

У мене була така ж проблема: моя була через те, що веб-проект мав платформу націлення на x86. Я працював на 64-бітовій машині; інші проекти в рішенні були встановлені на 64-розрядні.

Щоб перевірити свої налаштування, клацніть правою кнопкою миші проект та виберіть Властивості. На вкладці "Збірка" перевірте значення "Ціль платформи".

Також перевірте конфігурацію збирання рішення (меню Build> Configuration Manager), щоб перевірити, чи всі ваші проекти будуються на одній платформі.

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


Мені потрібно було поєднати цю відповідь з відповіддю від @brockstaylor нижче, щоб вирішити цю проблему на Umbraco 7.1.6
devinbost

9

Я спробував усі вищезазначені рішення, але не пощастило. Додавання рядка <add assembly="*" />до web.config виправило його для мене. (Ви також можете додати файл machine.config або root web.config відповідної версії .NET Framework, я його не пробував) Завдяки підтримці MS за рішення.


Це була моя проблема. Мені довелося <assemblies><clear/>...запобігти успадковуванню посилань на збірки від батьківського додатку в вкладеній програмі IIS.
Крейг Селесте

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

9

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

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


8

Це відбувається зі мною, коли я перейменую свій проект / рішення. Перейдіть у папку проекту в Windows Explorer (вийдіть із VS). Знайдіть і відкрийте файл Global (можливо, ви знайдете 2 файли, відкрийте, що не мають розширення ".asax.cs"), і відредагуйте помилку з правильним шляхом. Удачі!


Це чудова відповідь, варто більше звертати увагу - перейменування додатків трапляється, і такі помилки дратують!
Бартош

7

Я відчував ту саму проблему пару днів тому - наскільки я можу сказати, це була проблема із 64-розрядним IIS, який працює з 32-розрядним веб-додатком. Ми змінили наш виробничий сервер на 32-розрядний, і ця проблема зникла.


5

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


4

Для повноти я включив, що було моєю проблемою, і як я її вирішив:

Якщо вам подобається мені і у вас є httphandlers через web.config, і ви переспрямовуєте з вашого global.asax.cs (можливо, в Session_Start ()), як у моєму випадку, ви отримуєте цю помилку, якщо у вашому стартовому проекті не вказано посилання, на яке вказує ціль, куди вказує ваш httфандлер !! (але ви не будете отримувати помилки в побудові, просто помилки під час виконання)

Так:

  1. Двічі перевірте веб-конфіг на наявність зовнішніх елементів
  2. Двічі перевірте, чи ваш стартовий проект має всі посилання, які йому потрібні.

Ура.


Я додав елемент керування Ajax Toolkit, але не додав посилання на DLL. Дякуємо за ваш номер 2.
pixelmeow

4

Єдиний раз, коли я це переживав, це було, коли фреймворк MVC не був встановлений на сервері. Чи може це бути так?

Пропущений розділ Сторінок у Views \ Web.config також може бути винним.


Не впевнений, що це розміщений сервер і відповідно до них ASP .NET MVC працює нормально.
Riaan Engelbrecht

Я знайшов іншу людину (у дядька Google), яка зазнала подібної помилки з іншої причини. Додано посилання для відповіді. Удачі!
Даніель Елліотт

3

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

Рядок 1: <% @ Application Codebehind = "Global.asax.cs" Inherits = " @interface .MvcApplication" Language = "C #"%>

Там, де чомусь був знак "@". Я здогадуюсь, що слово "інтерфейс" зарезервоване для чогось іншого, і воно додало символ @, але це очевидно щось зламало. Я видалив проект і зробив новий з іншою назвою без проблем.


3

Ось ще одна:

  1. Я працював над веб-проектом api, який використовував localhost: 12345.
  2. Я перевірив іншу гілку від джерела управління, що містить той самий проект.
  3. Я запустив проект по гілці і отримав помилку.
  4. Я перейшов до "Властивості> Веб> URL-адреса проекту" і натиснув "Створити віртуальний каталог"
  5. З'явилося діалогове вікно, в якому розповідалося, що URL-адресу було відображено в інший каталог (каталог для оригінального проекту).
  6. Я натиснув Гаразд, і віртуальний каталог був перезавантажений.
  7. Помилка пішла.

Сподіваюся, що хтось десь допомагає :)


що насправді зробив це для мене!
ra170

2

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

Перейдіть на вкладку "Пакет / публікація" та переконайтесь, що для конфігурації встановлено "Випуск" та "Платформа для всіх платформ".

Останнє переконайтесь, що для "Елементи для розгортання (стосується всіх методів розгортання)" встановлено значення "Усі файли в цій папці проекту"

Тоді це добре працювало для мене.


2

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

У моєму випадку безпосередньою причиною було те, що рішення налаштовано на використання NuGet Package Restore, але сервер не був підключений до Інтернету, тому NuGet не зміг завантажувати залежності при побудові вперше.

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


2

Переконайтесь, що простір імен у Global.asaxфайлі збігається з Global.csфайлом, тобто

Global.asax: Some.Website.Webapplication

Global.cs: Some.Website(мінус 'WebApplication')


2

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


2

Мою проблему було вирішено, коли я перетворив у IIS фізичну папку, яка містила файли, у програму. Клацніть правою кнопкою миші> перетворити в додаток.


1

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


Моє також, у файлі рішення було видалено кілька файлів, і я не зрозумів, поки не закрив і не відкрив Visual Studio
Fiona - myaccessible.website

1

У моєму випадку посилання на System.Web.MVC відсутня в моєму проекті. Але після додавання посилань випуск був таким самим, тому я перевірив властивості моєї папки Bin, це було ReadOnly. Одразу після того, як зробити його для запису, все працює добре.


1

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


0

Жодна з інших відповідей не вирішила цю помилку для мене.
Я знайшов рішення, яке спрацювало, і пропоную тим, хто перебуває в тій же ситуації:

  1. Закрити Visual Studio
  2. Перейдіть до проектів \ вашпроект \ вашпроект
  3. Перейменуйте Web.Debug.config і Web.Release.config
  4. Перебудуйте та запустіть свою програму

Видалено ці ... і тепер вони не з’являються знову.
FiringSquadWitness

0

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


0

Виконайте такі дії:

  1. Побудувати
  2. Менеджер конфігурацій
  3. Покладіть проект AnyCPU
  4. Назад, щоб створити
  5. Готові, після цього просто виконайте ті ж самі кроки, щоб передати його на x86 або x64

0

Для мене у мій проект був включений DLL, який потрібно було запустити в 32-бітному середовищі.

Сервер був налаштований на запуск веб-сайту в 32-бітному режимі, але мені не вдалося запустити додаток на моєму 64-бітному апараті, оскільки localhostпапка не була визначена для запуску в 32-бітному режимі.


0

У мене просто була подібна проблема.

Причиною було те, що я змінював файл file.aspx.c і мені довелося зробити чисту перебудову. Після цього все спрацювало.


0

Моя проблема полягала в тому, що я намагався створити веб-додаток ASPX у підпапці папки, у якій вже був файл web.config, і

Тому я відкрив батьківську папку в Visual Studio як веб-сайт (Відкрити> Веб-сайт), мені вдалося додати новий елемент ASPX-сторінки, який не мав розбору / завантаження проблем.


0

Для мене проблема була лише у певних (довгих) посиланнях на веб-сайті і відстежувалася до URLScan з конфігурацією за замовчуванням обмеженням довжини URL-адреси 260.


0

У мене була така ж проблема. Намагатися:

Клацніть правою кнопкою миші на проект та виберіть «Очистити», потім ще раз клацніть правою кнопкою миші та виберіть «Перебудувати» та запустіть проект, щоб побачити, чи він працював.

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