Сообщение об ошибке Parser: не удалось загрузить тип 'TestMvcApplication.MvcApplication'

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

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

Сообщение об ошибке Parser: не удалось загрузить тип 'TestMvcApplication.MvcApplication'.

Ошибка источника:

Строка 1: <% @Application Codebehind = "Global.asax.cs" Inherits = "TestMvcApplication.MvcApplication" Язык = "С#" % >

Исходный файл:/global.asax Линия: 1

Не уверен, что кто-то наткнулся на эту ошибку раньше и как она была решена, но я дошел до конца. Любая помощь будет оценена.

Мне также нужно упомянуть, что это опубликованный код, поэтому все скомпилировано. Может быть что-то не так с моими настройками компилятора?

Ответ 1

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

Ответ 2

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

Чтобы исправить это, щелкните правой кнопкой мыши название вашего проекта, в этом случае "TestMvcApplication" и нажмите построить.

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

Ответ 3

Я обнаружил, что, когда вы вынуждены использовать Configuration Manager для запуска под управлением x86 или чего-либо иного, кроме стандартного проекта "из коробки", среда IDE создает кучу подкаталогов под папкой bin для сети проект.

Как только это произойдет, если сервер Cassini запущен, тогда проект не работает должным образом.

Я исправил его, перейдя в свойства веб-проекта → Настройки сборки и изменив путь вывода на bin\

Затем перестройте и все будет работать так, как должно.

Ответ 4

После долгого серьезного взгляда я столкнулся с настоящей проблемой.

Абоненты были повреждены FTP-клиентом, который я использовал для загрузки файлов в размещенную среду.

Я изменил свой FTP-клиент, и все работает по назначению.

Ответ 5

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

Чтобы проверить свои настройки, щелкните правой кнопкой мыши проект и выберите "Свойства". На вкладке "Сборка" проверьте значение "Target Platform".

Также проверьте конфигурацию сборки решения (меню "Сборка" > "Диспетчер конфигурации" ), чтобы проверить, что все ваши проекты построены на одной платформе.

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

Ответ 10

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

Ответ 11

Единственный раз, когда я это испытывал, было то, что среда MVC не была установлена ​​на сервере. Это может быть так?

В разделе "Недостающие страницы" в Views\Web.config также может быть ошибка.

Ответ 12

В целях полноты я включил в себя мою проблему и как я ее решил:

Если вы похожи на меня и имеете httphandlers через web.config, и у вас есть перенаправления из вашего global.asax.cs(возможно, в Session_Start()), как в моем случае, вы получаете эту ошибку, если ваш проект запуска не имеет определенной ссылки который указывает на цель, где ваш httphandler указывает! (но вы не получите ошибки сборки, просто ошибки времени выполнения)

Итак:

  • Дважды проверьте ваш web.config для любых внешних элементов.
  • Двойная проверка вашего проекта запуска имеет все необходимые ему ссылки.

Приветствия.

Ответ 13

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

Строка 1: <% @Application Codebehind = "Global.asax.cs" Inherits = " @interface.MvcApplication" Язык = "С#" % >

Если по какой-то причине появился знак "@". Я предполагаю, что слово "интерфейс" зарезервировано для чего-то еще, и он добавил символ @, но это явно что-то сломало. Я удалил проект и сделал новый с другим именем без проблем.

Ответ 14

Здесь еще один:

  • Я работал над проектом web api, который использовал localhost: 12345.
  • Я проверил другую ветку из исходного элемента управления, содержащего тот же проект.
  • Я запустил проект на ветке и получил ошибку.
  • Я перешел в "Свойствa > Веб > URL проекта" и нажал "Создать виртуальный каталог"
  • Появилось диалоговое окно, в котором говорилось, что URL был сопоставлен с другим каталогом (каталог для исходного проекта).
  • Я нажал кнопку "ОК", и виртуальный каталог был переназначен.
  • Ошибка исчезла.

Я надеюсь, что кто-то поможет где-то:)

Ответ 15

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

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

В последний раз убедитесь, что "Элементы для развертывания (применимы ко всем методам развертывания)" установлены в "Все файлы в этой папке проекта"

Затем он работал отлично для меня.

Ответ 16

Эта проблема сложна, потому что легко путать основную причину с любой непосредственной причиной.

В моем случае непосредственной причиной было то, что решение настроено на использование NuGet Package Restore, но сервер не был подключен к Интернету, поэтому NuGet не смог загрузить зависимости при создании в первый раз.

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

Ответ 17

Убедитесь, что пространство имен в файле Global.asax соответствует значению в файле Global.cs i.e.

Global.asax: Some.Website.Webapplication

Global.cs: Some.Website (минус "WebApplication" )

Ответ 18

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

Ответ 19

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

Ответ 20

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

Ответ 21

В моем случае ссылка на System.Web.MVC отсутствовала в моем проекте. Но после добавления ссылок проблема была такой же, поэтому я проверял свойства моей папки Bin, это было ReadOnly. Просто после того, как он был доступен для записи, все работает нормально.

Ответ 22

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

Ответ 23

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

  • Закрыть Visual Studio
  • Обзор проектов \yourProject\yourProject
  • Переименуйте Web.Debug.config и Web.Release.config
  • Перестроить и запустить приложение

Ответ 24

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

Ответ 25

Выполните следующие действия:

  • Построить
  • Диспетчер конфигурации
  • Поместите проект AnyCPU
  • Назад для создания
  • Готов, после этого просто выполните те же шаги, чтобы передать его на x86 или x64.

Ответ 26

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

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

Ответ 27

У меня была аналогичная проблема.

Причина в том, что я менял файл .aspx.c и должен был выполнить чистую перестройку. После этого все сработало.

Ответ 28

Моя проблема заключалась в том, что я пытался создать веб-приложение ASPX в подпапке папки, в которой уже был файл web.config, и

Итак, я открыл родительскую папку в Visual Studio в качестве веб-сайта (Open > Web Site). Я смог добавить новую страницу ASPX для статьи, в которой не было проблем с разбором/загрузкой.

Ответ 29

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

Ответ 30

У меня была такая же проблема. Попробуйте:

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