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

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

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

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

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

ошибки я вам не GodsCreationTaxidermy нагрузки.Ядро.MvcApplication, но в этом снимке экрана основная часть не отображается в ошибке:

Error Page Screenshot

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

30 ответов


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

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


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

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


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

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


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

щелкните правой кнопкой мыши Global.asax file и выберите "Open With", а затем выберите" XML (Text) Editor with Encoding " (другие редакторы также могут работать, но это то, что я использую).

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

Наследует= " GodsCreationTaxidermy.MvcApplication" Language= " C#"%>)

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

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


Я закрыл и снова открыл visual studio, и это сработало.


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


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

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

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

поэтому, если вы видите это ошибка, и очистка / восстановление не помогает, откройте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".

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

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


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

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


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

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

перемещение на App_Code папку

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

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

...где "MyApp" - это имя класса, определяемого в Global.асакс.vb


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

источник


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

Я должен удалить глобальные.асакс.cs, а затем добавил новый, щелкнув правой кнопкой мыши Project - > Add New Item - > Global.asax и что, наконец, починили.

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


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


Я тоже столкнулся с той же проблемой. Несмотря на следование каждому ответу, это не сработало. Затем я изменил "наследует=пространство имен.класс!--2--> "to" наследует=полное имя сборкипространство имен.class, assemblyname, Version=, Culture=, PublicKeyToken=" Надеюсь, это поможет.


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

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


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


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


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

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


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


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


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


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


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

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


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

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

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


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


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


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

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

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


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

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


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


для нас configuration manager показывает сборки dll как сочетание " 64 " и "любой cpu".

помещая их все в одну сборку, исправляет это.