Подтвердить что ты не робот

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

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

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

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

Строка 1: <%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.Core.MvcApplication" Language="C#" %>

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

Error Page Screenshot

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

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

Ответ 4

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

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

Затем отредактируйте раздел "Наследует" в директиве XML

<% @Application Codebehind = "Global.asax.cs" Наследует = "GodsCreationTaxidermy.MvcApplication" Язык = "С#" % > )

чтобы он соответствовал фактическому полному имени вашего класса приложения. И это так.

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

Ответ 5

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

Ответ 6

Мне нужно было перейти в BUILD → MANAGER CONFIGURATION и - гм - установите флажок рядом с моим проектом, чтобы убедиться, что он действительно построен.

Ответ 7

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

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

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

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

введите описание изображения здесь

Кроме того, проверьте окно 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".

Конечно, решение состоит в том, чтобы щелкнуть правой кнопкой мыши по вашему основному проекту, выбрать верхнюю вкладку "Приложение" и изменить версию Target Framework на более высокую версию, которая соответствует вашему подпроекту.

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

Ответ 8

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

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

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

Ответ 9

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

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

Ответ 10

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

Ответ 11

Я работал над старым веб-проектом 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

Ответ 12

"BUILD → CONFIGURATION MANAGER и - гм - установите флажок рядом с моим проектом, чтобы убедиться, что он действительно построен". Это и переход в папку проекта в проводнике Windows, нажатие опций и снятие флажка "Только чтение".

Ответ 13

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

Ответ 14

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

Источник

Ответ 15

У меня тоже была та же проблема. Несмотря на следующие ответы, он не работал. Затем я сменил "Inherits = namespace.class" на "Наследовать = полностью квалифицированное имя сборки", то есть "Inherits = namespace.class, assemblyname, Version =, Culture =, PublicKeyToken =" Надеюсь, что это поможет.

Ответ 16

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

Вы можете проверить это, щелкнув правой кнопкой мыши Solution в обозревателе решений и выбрав "Свойства". Затем найдите "Startup Projects".

Ответ 17

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

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

Ответ 18

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

Ответ 19

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

Ответ 20

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

Ответ 21

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

Ответ 22

Проблема для меня в том, что я не включил 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);
        }
    }
}

Ответ 23

Реконструкция проекта может решить проблему.

Ответ 24

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

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

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

Ответ 25

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

Ответ 26

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

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

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

Ответ 27

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

В итоге я просто загрузил решение в 2015 году, и он разрешил его для меня.

Ответ 28

Два способа получить это:

  • Диспетчер конфигурации показывает сборки dll в виде комбинации сборок '64' и 'any cpu'. Помещение их в одну сборку исправляет это.

  • При переключении между ветвями экспресс-путь IIS иногда не обновляется. Щелкните правой кнопкой мыши "IIS Express" на панели задач> Показать все приложения и убедитесь, что путь к правильной ветки.

Ответ 29

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

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

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

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

Ответ 30

Удалите каталог .vs из корня решения. Clean. Перестроить.

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