«Parser Сообщение об ошибке: Не удалось загрузить тип» в Global.asax


147

Я работаю над проектом MVC3 и получить следующее сообщение об ошибке:

Parser Error Message: Could not load type 'GodsCreationTaxidermy.MvcApplication'.

Источник ошибки:

Line 1: <%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.Core.MvcApplication" Language="C#" %>

Ошибка Я получаю не может загрузить GodsCreationTaxidermy.Core.MvcApplication, но в этом скриншоте Основная часть не отображается в сообщении об ошибке:

Error Page Screenshot

Есть ли у кого-нибудь идеи или решение этой ошибки?

+6

У вас действительно есть класс GodsCreationTaxidermy.Core.MvcApplication в вашем приложении? Если нет, пожалуйста, создайте то же самое и скомпилируйте проект. Это будет работать точно. 27 июл. 122012-07-27 06:00:24

+4

Да, у меня есть GodsCreationTaxidermy.Core.MvcApplication (Global.asax.cs) 27 июл. 122012-07-27 06:05:47

  0

Файл Global.asax, который, кажется, используется (согласно снимку экрана), выглядит иначе, чем тот, который вы показали. 27 июл. 122012-07-27 06:11:07

  0

проверьте, является ли строка Inherits такой же, как путь к классу в вашем приложении (пространство имен + путь), то есть они оба являются GodsCreationTaxidermy.Core.MvcApplication 27 июл. 122012-07-27 06:17:09

  0

Это одна из проблем Дарин, независимо от того, что я делаю всегда покидает основную часть 27 июл. 122012-07-27 16:30:46

  0

удаляет файл global.asax и добавляет новый, и вы будете в порядке. 08 июл. 132013-07-08 07:52:23

  0

Полезная тема, приветствия 30 авг. 132013-08-30 13:10:26

  0

Это может произойти, если вы измените пространство имен проектов и не обновляете пространство имен и не используете заявления во всех файлах проекта. 11 дек. 152015-12-11 04:54:44

  0

Возможный дубликат ["Невозможно загрузить тип \ [Пространство имен \]. Глобальное" вызывает у меня горе "(https://stackoverflow.com/questions/2005747/could-not-load-type-namespace-global-causing-me -grief) 25 июл. 172017-07-25 11:49:50

132

Ваш локальный веб-сервер работает под управлением другой код, чем то, что вы на самом деле работает. Убедитесь, что вы остановили отладку, остановите свой локальный веб-сервер, очистите и перестройте, как предложил Питер, дважды проверьте ваши global.asax и global.asax.cs и повторите попытку.

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

+3

Действительно странная ошибка. Я развернулся в IIS на сервере и получил это. Уборка и перекомпилирование работали для меня тоже. 14 янв. 142014-01-14 21:15:47

  0

Чистота и перестройка работали для меня тоже. 05 ноя. 142014-11-05 15:59:56

+2

Очистить/перестроить + восстановить виртуальный каталог, а затем он сработал. 02 дек. 142014-12-02 13:20:08

  0

Да, отлично работает после удаления существующего приложения с тем же именем в IIS и перестроить мой проект, а затем опубликовать. 08 дек. 142014-12-08 11:55:21

  0

Именно то, что решило мою проблему. Благодаря! 24 мар. 152015-03-24 22:57:40

+4

Если у меня был тот же проект, открытый в двух экземплярах Visual Studio. Поэтому у меня было два экземпляра IIS Express. Мне пришлось закрыть его, и тогда он был разрешен. 05 июн. 152015-06-05 14:28:18

+3

Вы также можете попробовать удалить папки bin/obj в своем проекте. 02 сен. 152015-09-02 14:57:57

  0

получил исходный контроль на новом ПК, необходимый для создания проекта ... duhhhhhhhhhhhhhhhhhhhhh 23 сен. 162016-09-23 14:52:30

  0

У меня тоже есть эта ошибка. Я предполагаю, что причиной является: Я изменил IIS Express для работы в режиме x64 (для другого проекта). Я вернулся к другому проекту и получил эту ошибку при запуске. Я предполагаю, что ничего не нужно было перестроить, оно было загружено как приложение x86 в x64-версию IIS Express. Очистка раствора. 10 окт. 162016-10-10 14:03:51

  0

Я следил за этими инструкциями и добавил несколько дополнительных чисток/перестроек, изменил пробелы в файле .asax, переформатировал мои мониторы и сделал jaunty jig в сопровождении труб Pan, и это, казалось, сделало трюк. 03 ноя. 162016-11-03 18:36:17

  0

Извините, я должен был упомянуть эту последнюю часть. 03 ноя. 162016-11-03 21:19:52


31

Попробуйте изменить файл global.asax (просто добавьте пробел где-нибудь) и запустите его. это заставит встроенный веб-сервер обновлять и перекомпилировать файл global.asax.

сделать также чистый и восстановление - должно решить проблему

+4

Изменение global.asax ничего не сделал для меня, но чистая и перестроенная проблема устранена :) 13 июл. 132013-07-13 19:04:46

  0

У меня была эта проблема, когда у меня не хватило сил. Чистота и восстановление помогли. Благодаря! 25 ноя. 132013-11-25 10:59:53

  0

Очистка не удалась. Сбой сборки. У меня не было проблем с моей дорогой сборки. Это, однако, сделало трюк. Благодаря! 18 ноя. 152015-11-18 23:37:47

  0

Спасибо за ваш ответ Mr. Munnings 26 апр. 162016-04-26 08:40:21

  0

это сделало трюк .. Спасибо! 03 окт. 162016-10-03 19:27:55


156

Убедитесь, что выход проекта путь (проект свойства/Build) устанавливается на bin и неbin\Release или bin\Debug

По некоторым причинам IIS (VS сервер развития или локальной IIS) всегда обращается к библиотекам с bin каталог (и не подытоживает подкаталоги)

+18

Кредит, где это должно быть. Исправлена ​​проблема, мое приложение было настроено на использование bin \ Debug, заменив его на bin. Большое спасибо. 02 сен. 132013-09-02 12:08:36

  0

ничего себе! его работа над первым выстрелом! 15 ноя. 132013-11-15 07:29:32

  0

Было интересно узнать, что проекты ASP.NET не используют путь вывода по умолчанию/bin ($). Большое спасибо за ответ! 23 дек. 132013-12-23 15:40:56

  0

Удивительный, спасенный день! 06 май. 142014-05-06 07:25:10

  0

Dang, это * настоящий * ... есть! Спасибо за совет! 23 мар. 152015-03-23 17:38:26

  0

Ну, это все испортило. Dlls собирались bin \ debug. 14 авг. 152015-08-14 05:14:47

  0

Спасибо, этот трюк спас мне много боли 17 авг. 152015-08-17 14:15:48

  0

спасибо !!! Я сошел с ума. Очевидно, еще один разработчик указал на результат AppData \ 17 сен. 152015-09-17 17:59:16

  0

Удивительный, спасибо, работал для меня :-) 14 июн. 162016-06-14 09:00:14

  0

Спасла мою жизнь! 04 сен. 172017-09-04 12:36:50

  0

Мне удалось изменить его на bin, запустить его, а затем вернуть обратно в bin \ Debug. Иногда вам просто нужно встряхнуть его, чтобы вернуть его в нужное русло. 04 окт. 172017-10-04 21:11:37

+1

@JamesPusateri: будьте осторожны. Каждый раз, когда вы запускаете, он будет использовать то, что находится в/bin.Поэтому, вероятно, результат этой сборки вы создали после того, как вы ее изменили. 05 окт. 172017-10-05 12:11:36

  0

Хороший звонок @Vincent После этого я удалил папку bin, и она действительно начинает снова сбой. Нечетная маленькая причуда. 05 окт. 172017-10-05 13:27:55


0

Вы также можете проверить свойства своего сайта в IIS. (В IIS щелкните правой кнопкой мыши сайт и выберите «Свойства».) Убедитесь, что параметр Physical Path указывает на правильный путь для вашего приложения, а не на другое приложение. (Это исправило эту ошибку для меня.)


0

Эта проблема была решена путем предоставления права доступа к папке, а также проверки из IIS.

Мне было дано разрешение всем, так как я тестирую в своей местной среде. Но в режиме публикации я думаю, что мы предоставляем только разрешение пользователю ASP.Net.


0

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

  0

Ответ уже был сделан 25 сен. 132013-09-25 07:02:15


1

Пустая папка bin , Создайте все библиотеки зависимых классов и отнесйте их в основной проект и постройте полное решение.

Source


0

Я также получил ту же ошибку ... проверьте конфигурации IIS вашего виртуального каталога и убедитесь, что свойства - ASP.NET - ASP.NET версии такой же как Свойства проекта - Применение - Target Фреймворк. (Это фиксировало эту ошибку для меня.)


0

Мое приложение было создано в старой версии VS и не имело папку с bin. Я обновил его до более новой версии и получил кошмар, чтобы его развернуть. Я, наконец, проследил эту ошибку до Project> Properties> Application. Целевая структура была установлена ​​в 2.0; изменение его на сервере для соответствия в диспетчере IIS/App Pool решило проблему для меня.


14

Я закрыл и открыл визуальную студию, и это сработало.

+3

закрыть ВСЕ твою визуальную студию 08 дек. 142014-12-08 14:48:56

+5

Сначала мы все должны попытаться выбраться из машины, закрыть все двери, а затем снова вернуться. 07 окт. 152015-10-07 12:53:00


19

Это происходит иногда, если вы изменяете информацию о пространстве имен (уровне проекта или класса) после создания global.asax.

Щелкните правой кнопкой мыши на файле Global.asax и выберите «Открыть с», а затем выберите «Редактор XML (текста) с кодировкой» (другие редакторы могут работать, но это то, что я использую).

Затем отредактируйте «Inherits» раздел в директиве XML

<%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.MvcApplication" Language="C#" %>)

так, что он совпадает с фактическим полным именем вашего класса Application. Вот и все.

Другой вариант - скопировать весь код из Global.asax.cs, а затем удалить и создать еще один файл Global.asax (а затем скопировать код обратно в Global.asax.cs).

+1

Это сработало для меня, спасибо Пол 08 сен. 172017-09-08 01:19:47

  0

Это сработало и для меня. Я изменил пространство имен для сборки для всех проектов в решении. Поэтому пришлось отредактировать файл 'Global.asax', как указано в этом ответе, и сделать его соответствующим тому, что находится в настройках конфигурации проекта. 12 фев. 182018-02-12 06:29:34


0

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


14

Мне нужно было перейти на СТРОЙ -> КОНФИГУРАЦИОННЫЙ МЕНЕДЖЕР и - гм - установите флажок рядом с моим проектом, чтобы убедиться, что он действительно построен.

+2

Я не понимаю нисходящего. Это потенциально могло быть решением. Это на самом деле более актуально, чем большинство думают ... Если непроверено, это не всегда самое очевидное место. Особенно, когда есть несколько конфигураций. 11 июн. 152015-06-11 15:18:12

  0

Мне нравится ваш ответ и ваши рассуждения! 14 июн. 162016-06-14 17:17:42

+1

Это тоже моя проблема, и я понятия не имею, как проекты были отменены из конфигурации. 19 май. 172017-05-19 19:36:44

  0

, который работал для меня! 29 янв. 182018-01-29 11:12:40


0

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

Мне пришлось удалить global.asax.cs, а затем добавить новый, щелкнув правой кнопкой мыши Project -> Добавить новый элемент -> Global.asax и THAT, наконец, исправил его.

Просто подумал, что это может помочь кому-то.

  0

Если это исправлено для вас, возможно, что-то испорчено в отношении свойства «Build action» существующего файла 'global.asax.cs'. Он должен быть установлен в «Компиляция». Действие сборки самого файла 'global.asax' должно быть установлено в« Содержимое ». 16 апр. 152015-04-16 08:27:35


2

Должен сообщить, что я пробовал как минимум 4 предложения из этого сообщения. Ни один из них не работал. Тем не менее я рад сообщить, что я выздоравливал, возвращаясь обратно. Только мне пришлось обновлять мои последние изменения кода из файла журнала. Принимал менее 10 минут. Провел 3 раза, чтобы прочитать это сообщение и попробовать другие предложения. Сожалею.

Это была очень странная ошибка. Удачи всем, кто встречает этот гремлин.


0

Проблема для меня в том, что я не включил global.asax.cs в свой проект. И поскольку я копировал файлы из .net 4.5 в 4.0, я не прокомментировал строки, которые не нужны в 4.0. Поскольку он не был включен, visual studio скомпилировал его в любом случае без проблем. Но когда я включил его, он выделил строки, которые вызывают проблемы.

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
//using System.Web.Http; 
using System.Web.Mvc; 
//using System.Web.Optimization; 
using System.Web.Routing; 

namespace YourNameSpace 
{ 
    public class WebApiApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 
      //GlobalConfiguration.Configure(WebApiConfig.Register); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      //BundleConfig.RegisterBundles(BundleTable.Bundles); 
     } 
    } 
} 

1

У меня такая же проблема, когда у меня есть 2 экземпляра Visual Studio, работающих на одном проекте. Поэтому я закрыл Visual Studio и открыл только один экземпляр, и теперь он отлично работает!


1

Я тоже сталкивался с той же проблемой. Несмотря на следующие ответы, он не работал. Тогда я изменил "Inherits = namespace.class" до "Inherits = полное имя сборки", то есть "Inherits = namespace.class, AssemblyName, Version =, Culture =, PublicKeyToken =" Надеюсь, что это помогает ,


1

я работал на старом «на основе папки» веб ASP.NET проекта (который я ненавижу) - и нашел, что это моя ошибка:

Создать App_Code папку (если вы не один уже)

Переместите файл Global.asax.vb в папку App_Code

разметка в Global.asax может выйти из любых пространств имен (по крайней мере, для этого стиля проекта, AFAIK):

<%@ Application Codebehind="Global.asax.vb" Inherits="MyApp" Language="VB" %> 

... где «MyApp» это имя класса определяется в Global.asax.vb


0

Перестройка проект может решить эту проблему.


0

Я потратил буквально день, пытаясь разрешить это.

Единственное, что сработало, это удаление .sln-файла, создание нового и добавление проектов обратно по одному.

¯ \ _ (ツ) _/¯ - Программирование - ¯ \ _ (ツ) _/¯


0

косяка ошибки загрузки с вашего проекта firstly Fix your errors and after rebuild project its working


0

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


0

Я столкнулся с этим сообщением об ошибке и в конце концов обнаружил, что сообщение об ошибке вводит в заблуждение. В моем случае, по-видимому, в IIS возникла проблема маршрутизации, из-за которой global_asax с другого сайта на веб-сервере читался, генерируя эту ошибку.

В IIS мой сайт был связан с http: * 80: webservices.local и содержал приложение под названием MyAPI. Я получил ужасное сообщение при вызове приложения MyAPI с использованием IP-адреса веб-сервера.

Для успешного вызова моего приложения мне пришлось добавить запись файла хоста для webservices.local на всех компьютерах, которые вызвали приложение MyAPI. Затем все мои запросы должны были иметь префикс http://webservices.local/MyAPI/ для правильной маршрутизации.


3

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

В основном, мой основной проект VS2015 включал подпроект, который был построен с использованием более высокой версии .NET Framework.

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

Итак, если вы видите эту ошибку, а очистка/восстановление не помогли, откройте дерево проекта References и проверьте восклицательные знаки.

enter image description here

Кроме того, проверьте Output окно сообщений, как это:

The primary reference "C:\Projects\Business Objects 4\bin\Release\BusinessObjects.dll" 
could not be resolved because it was built against 
the ".NETFramework,Version=v4.5" framework. 
This is a higher version than the currently targeted framework 
".NETFramework,Version=v4.0". 

Решение, конечно, щелкните правой кнопкой мыши на главном проекте, выберите вкладку сверху, «Application »и измените версию Target Framework на более высокую версию, соответствующую вашему подпроекту.

Досадно, что Visual Studio 2015 позволит вам полностью создавать и запускать решения, которые спокойно содержат эту проблему. Он просит неприятностей ..!


0

Я пробовал абсолютно все здесь и ничего не работал. Мой проект был в VS 2013. С тех пор я обновился до VS 2015 и создавал все свои новые приложения в 2015 году, но загружал, компилировал, строил и т. Д. Все мои старые приложения, которые были построены в 2013 году в этой версии.

Я закончил загрузку решения в 2015 году, и он разрешил его для меня.


0

Я решил проблему таким образом: Просто исправьте пространство имен в Global.asax.


0

Для нас диспетчер конфигурации отображает сборку dll в виде комбинации «64» и «любых процессоров cpu».

Ввод их всех в одну сборку исправляет его.


1

Это может произойти, если вы случайно забыли установить решение VS для «Несколько проектов запуска», если вы используете Web и WebApi из того же решения.

Вы можете проверить это, щелкнув правой кнопкой мыши на решение в обозревателе решений и выберите «Свойства». Затем найдите „Проекты Startup“.

  0

Mine была похожа на это: я запускал неправильный проект API в решении. У меня на самом деле была ошибка компилятора в API, который, как я думал, я запускал, но VS не подхватил его, когда я запустил решение даже после чистки. 04 дек. 172017-12-04 01:49:48


0

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

  1. Изменение целевой платформы для любого процессора. у меня не было такой конфигурации в настоящее время, так что я должен был пойти в Configuration Manager и добавить его. Я специально компиляции для x64. Это само по себе не устранило ошибку.
  2. Изменить выход путь к bin\ вместо bin\x64\Debug. Я пробовал это несколько раз, прежде чем я изменил цель платформы. Он никогда не делал различий, кроме получения ошибки, из-за которой не удалось загрузить сборку из-за недопустимого формата.

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

Если я изменил одну из этих настроек на оригинал, я снова получаю ту же ошибку, несмотря на то, что запустил Clean Solution и вручную удалил все в каталоге bin.


0

«СТРОЙ -> КОНФИГУРАЦИОННЫЙ МЕНЕДЖЕР и - гм - установите флажок рядом с моим проектом, чтобы убедиться, что он действительно построен». Это и переход к папке проекта в проводнике Windows, нажатие опций и снятие флажка «Только чтение».