"Сообщение об ошибке парсера: не удалось загрузить тип" в Global.эйсакс
Я работаю над проектом MVC3 и получаю следующую ошибку:
сообщение об ошибке парсера: не удалось загрузить тип " GodsCreationTaxidermy.MvcApplication'.
Ошибка Источник:
строка 1:
<%@ Application Codebehind="Global.asax.cs" Inherits="GodsCreationTaxidermy.Core.MvcApplication" Language="C#" %>
ошибки я вам не GodsCreationTaxidermy нагрузки.Ядро.MvcApplication, но в этом снимке экрана основная часть не отображается в ошибке:
кто-нибудь есть идеи или решение этой ошибки?
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.асакс.цезий.)
Мне пришлось перейти к BUILD - > CONFIGURATION MANAGER и -- ahem -- установите флажок рядом с моим проектом, чтобы убедиться, что он действительно будет построен.
у меня сегодня этот вопрос, и мне потребовалось некоторое время, чтобы найти причину.
в основном, мой основной проект VS2015 включал подпроект, который был построен с использованием более высокой версии .Net Framework.
странно, когда у вас есть эта проблема, VS2015 с радостью сообщит, что решение построено хорошо, но когда вы пытаетесь запустить веб-сайт, он просто дает вам эту вводящую в заблуждение ошибку, предполагая, что ваш - это неправильно.
поэтому, если вы видите это ошибка, и очистка / восстановление не помогает, откройте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".
решение, конечно, состоит в том, чтобы щелкнуть правой кнопкой мыши на главном проекте, выбрать верхнюю вкладку "приложение" и изменить целевую версию фреймворка на более высокую версию, которая соответствует вашему подпроекту.
это раздражает, что визуальный 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".
помещая их все в одну сборку, исправляет это.