"Не удалось загрузить тип [пространство имен].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
вот еще один для книг. Похоже, это происходит при запуске нескольких веб-приложений с одного и того же номера порта.
в основном, у меня есть несколько ветвей, которые я работаю, у меня есть основная ветвь и промежуточная ветвь и ветвь выпуска. Когда я переключил ветвь на промежуточную ветвь, я заметил, что она использует ту же конфигурацию адреса порта, поэтому я решил изменить это. Затем я получил еще одно предупреждение о том, что эта оговорка противоречит другой настроенное приложение. Сервер IIS Express чувствителен к этому и по какой-либо причине он блокирует конфигурацию.
просто выбрав третий незатронутый порт, эта проблема исчезла, потому что она затем сопоставляет порт с новым сопоставлением каталогов (мои ветви расположены по-разному на диске). Я заметил это, потому что я попытался изменить имя типа, на которое указывает Global.asax
но имя типа не изменилось даже после перезагрузки сервера, поэтому ясно, что код, который я менял, не был отражено развертыванием IIS Express.
таким образом, прежде чем потерять слишком много сна над этим, попробуйте изменить номер порта IIS, который в настоящее время используется для запуска веб-проекта.
- щелкните правой кнопкой мыши решение проекта и выберите пакетное построение.
- затем выберите имя проекта и очистить и перестроить.
отлично работает для меня в 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). Просто сделайте общий просмотр имен файлов.
У меня были аналогичные проблемы, когда я получал эту ошибку в проекте.
“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, и он остановился! Что дает!?