"Не удалось загрузить тип [пространство имен].Global " причиняет мне горе

в моем .Net 2.0 Asp.net приложение WebForms, у меня есть мой глобальный.asax, содержащий следующий код:

<%@ Application CodeBehind="Global.asax.cs" Inherits="MyNamespace.Global" Language="C#" %>

однако, когда я строю, я получаю сообщение об ошибке -

не удалось загрузить тип ' MyNamespace.Глобальный".

это, по-видимому, потому, что пространство имен MyNamespace (определенное в коде позади файла Global.асакс.cs) не виден компилятором в глобальном.файл asax (не отображается в R# intellisence..). Это оказался очень крепкий орешек трескаться... любая помощь будет оценена!

Примечание: Глобальный.асакс и Глобал.асакс.cs находятся в одной папке.

Note2: при компиляции из приглашения vs с csc он компилирует o.к.

30 ответов


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

Если вы укажете x86 в качестве платформы сборки, visual studio автоматически назначит bin/x86 / Debug в качестве выходного каталога для этого проекта. Это совершенно справедливо для других типов проектов, за исключением веб-приложений, где ASP.NET ожидает, что сборки будут выведены в папку Bin.

Что я нашел в моей ситуации было то, что они выводились в оба (Bin и Bin/x86/Debug), за исключением того, что некоторые из dll, и необъяснимо наиболее важным из них является dll вашего веб-приложения, отсутствует в папке Bin.

Это, очевидно, вызвало проблему компиляции и, следовательно, исключение" не удалось загрузить тип Global". Очистка решения и удаление сборок не повлияли на последующие сборки. Мое решение состояло в том, чтобы просто изменить выходной путь в настройках проекта для веб-приложение в Bin (а не bin/x86/Debug).


вы изменили пространство имен вашего проекта? Я видел, как это иногда происходит, когда я изменил пространство имен в диалоговом окне свойств проекта, но Visual Studio не изменила namespace объявление в существующих файлах кода.


Я новичок в ASP .net developement, и я столкнулся с аналогичной проблемой.

я обновил класс как partial класс и он работал нормально.

public partial class Global : System.Web.HttpApplication

я перезапустил Visual Studio и ошибка исчезла!


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

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

просто выбрав третий незатронутый порт, эта проблема исчезла, потому что она затем сопоставляет порт с новым сопоставлением каталогов (мои ветви расположены по-разному на диске). Я заметил это, потому что я попытался изменить имя типа, на которое указывает Global.asax но имя типа не изменилось даже после перезагрузки сервера, поэтому ясно, что код, который я менял, не был отражено развертыванием IIS Express.

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


  1. щелкните правой кнопкой мыши решение проекта и выберите пакетное построение.
  2. затем выберите имя проекта и очистить и перестроить.

отлично работает для меня в VS 2015.Теперь я могу использовать Global event. Мой Global.asax файл имеет эту строку

<%@ Application Language="C#" CodeBehind="~/App_Code/Global.asax.cs" Inherits="Global" %>

и я делаю файл класс Global.asax.cs что находится в AppCode папка, которая выглядит как

public partial class Global : HttpApplication
{
    public Global()
    {
        //
        // TODO: Add constructor logic here
        //
    }
}

надеюсь, это поможет


проверьте действие сборки Global.асакс.цезий. Он должен быть настроен на компиляцию.

в обозревателе решений щелкните правой кнопкой мыши Global.асакс.cs и перейдите к свойствам. На панели Свойства задайте действие сборки (while не отладка).

кажется, что VS 2008 не всегда добавляет .асакс(.cs) файлы правильно по умолчанию.


в моей ситуации это было связано с типом веб-сайта/веб-приложения проекта. Недавно мы переехали в MVC и должны были изменить его на веб-приложение.

Итак, решение было простым: выберите свой веб-сайт в обозревателе решений и удалите его из решения, затем щелкните правой кнопкой мыши на решении и выберите Добавить - > существующий проект (не веб-сайте:!--4-->), перекомпилируйте веб-сайт.


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

следуйте инструкциям на этой ссылке. У меня все еще есть Глобал.ошибка asax, но все, что я сделал, это удалить его и снова добавить его, щелкнув правой кнопкой мыши на проекте в visual studio и выбрав добавить новый элемент. Добавить Global.файл asax, и он работал.


Я испытал аналогичную ошибку при наличии

<clear/>

тег, как ребенок (первый ребенок)

<assemblies>

тег в my Web.config. Я вставил теги в свою паутину.config в попытке предотвратить наследование конфигурации в приложении, развернутом на веб-сайте по умолчанию в IIS.


я преобразовал свое решение из VS2003 в VS2010 и имел проблемы с преобразованием проекта веб-приложения.

Я испытал ту же самую проблему, и ни один из ответов не работал для меня.

что работал для меня было:

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

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

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


Если вы перестраиваете или изменяете проект и перемещаете файлы из старого, обязательно проверьте блок наследования вашего глобального. В моем случае бывший проект / решение был назван интрасетью, и я воссоздал его как интрасеть, но когда я переместил файлы, ему не понравился нижний регистр (duh). Просто сделайте общий просмотр имен файлов.


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


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

“Could not load type [Namespace].Global
Error in Line 1   etc etc

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

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


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

TL; DR: в свойствах проекта на вкладке веб В разделе серверы выберите использовать локальный веб-сервер IIS. Адрес,

http://localhost/MyApp" 

был уже заполнен (у меня есть IIS7, .NET 4.0). Первоначально был выбран "использовать сервер разработки Visual Studio "с виртуальным путем"/"


эта работа для меня: Первое: кажется, что независимо от того, что вы сказали visual studio, ide всегда смотрит файл в: bin (для веб-приложения и, конечно, в моем случае), поэтому, даже когда я сказал visual studio определенный путь для загрузки файла, ide продолжает искать неправильный путь. Поэтому я меняю в: Build/Configuration Manager тип вывода на: Release (предыдущий я очищаю решение, даже вручную), поэтому, когда файл .dll была создана, затем я переместился вручную в папку " bin " под папка проекта/решения. Надеюсь, это будет полезно !!


в моем случае это было из-за моего целевого процессора (x64), я изменил его на x86, очистил проект, перезапустил VS(2012) и перестроил проект; затем он исчез.


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

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

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

TL; DR; если все ответы в этом потоке не работают для вас, попробуйте удалить, а затем повторно загрузить всю базу кода!


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

я нажимал эту ошибку каждый раз, потому что я пытался получить доступ к моему локальному коду перед его компиляцией. Видите ли, у меня есть Git и Subversion setup, чтобы игнорировать мои папки bin/build, поэтому после извлечения из моего репозитория я забыл запустить сборку, которая вытаскивает необходимые пакеты из Nuget (так как у меня есть git/SVN, игнорируйте их тоже) и создает DLL, необходимые для фактического запуска моего приложения.

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


Я был сбит с толку той же чертовой проблемой. Я попытался удалить и и global.asax (закрыто VS2010 перед добавлением). Очистил проект / решение, проверил любые изменения в конфигурации веб-приложения и других материалах, которые работали для других людей здесь, в потоках SO. Я, наконец, очистил решение, удалил папки bin/obj и остановил все запущенные серверы разработки VS2010, затем я вернул все изменения обратно и обнаружил, что приложение снова запущено. Я переделал то же самое. и теперь он работает нормально.

случилось снова и на этот раз этой решение работает для меня.


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


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

после удаления всего oof.* файлы, которые я смог отсканировать.

  • фу.аспн
  • фу.аспн.cs
  • фу.аспн.дизайнер.cs
  • ооф.аспн
  • ооф.аспн.cs
  • ооф.аспн.дизайнер.cs

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

C:\Users\Your-User-Name\Documents\IISExpress\config\applicationhost.config

и поиск порта, вы найдете <site>...</site> тег, который вам нужно удалить или прокомментировать его


в моем случае я добавил Global.asax к проекту WCF, чтобы поэкспериментировать с ним, но решил удалить его. Я удалил его из Обозревателя решений, но поскольку он все еще находился в папке, конвейер все еще находил его и вызывал эту ошибку.

Я удалил глобальный.ASAX и GLobal.асакс.cs из файловой системы, и это разрешило ошибку.


У меня была эта проблема при развертывании только на сервере prod. В других моих условиях это работает... Я просто удалил материал в папке bin, а затем переиздал, и после этого он работает.


Если вы используете Visual Studio, вы, вероятно, пытаетесь выполнить приложение в режиме выпуска, попробуйте изменить его в режим отладки.


Я попытался перестроить решение и очистить ASP.NET временные файлы без успеха.
Но после бега команду iisreset ошибка исчезла.

обновление: у меня была та же проблема снова 1 месяц. Я заметил, что MyWebsite.DLL существует в папке bin, но не существует во временном ASP.NET файлы (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET файлы). Я пробовал несколько вещей, которые предлагаются на этом и "парсер Сообщение об ошибке: не удалось загрузить тип" в глобальной.асакс вопросы (я действительно забыл о своем собственном ответе), но ошибка снова исчезла только после команду iisreset


Ну в моем случае против 2017, легкая загрузка решения вызывала эту проблему. Я отключил его и перезапустил VS, а затем заново построил свое решение и проблема исчезла.


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

оказывается, автоматически сгенерированный " AssemblyInfo.файл cs " имел некоторые посторонние пробелы, что мешало мне запускать веб-приложение (через debug). Вот как выглядел файл:

[assembly: AssemblyTitle("WebApplication2")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("

            ")]
[assembly: AssemblyProduct("WebApplication2")]
[assembly: AssemblyCopyright("Copyright © 

             2017")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

после уничтожения пробелов в AssemblyCompany и AssemblyCopyright я, наконец, смог построить и запустить проект.

наблюдается в следующих условиях: -- Visual Studio 2017 Сообщество версия 15.3.0 -- Win 7 x64 Enterprise -- Новый проект > Visual C# > Web > ASP.NET веб-приложение > веб-формы


Я испытал эту проблему, когда я случайно установил "Chrome" в качестве браузера по умолчанию для отладки. Когда я установил его обратно в "IE", проблема исчезла. Не знаю почему...


EDIT: я собирался удалить этот ответ, потому что я не был уверен в этом, но потом у меня снова возникла проблема. Я переключился на просмотр с Chrome, затем снова вернулся к IE, и он остановился! Что дает!?