"Не удалось загрузить тип [Пространство имен]. Глобальное", вызывающее у меня горе

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

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

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

Не удалось загрузить тип 'MyNamespace.Global'.

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

Примечание. Global.asax и Global.asax.cs находятся в одной папке.

Примечание2: При компиляции из приглашения vs с помощью csc она компилирует o.k.

Ответ 1

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

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

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

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

Ответ 2

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

Ответ 3

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

Я обновил класс как класс partial, и он отлично работал.

public partial class Global : System.Web.HttpApplication

Ответ 4

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

Ответ 5

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

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

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

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

Ответ 6

  • Щелкните правой кнопкой мыши на Project Solution и выберите Batch Build.
  • Затем выберите "Название проекта" и "Очистить и перестроить".

Работает отлично для меня В VS 2015. Теперь я могу использовать глобальное событие. Мой файл 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
        //
    }
}

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

Ответ 7

Проверьте действие сборки Global.asax.cs. Он должен быть установлен в "Скомпилировать".

В обозревателе решений щелкните правой кнопкой мыши Global.asax.cs и выберите "Свойства". На панели "Свойства" установите действие "Построение" (не отлаживая).

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

Ответ 8

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

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

Ответ 9

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

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

Ответ 10

У меня возникла аналогичная ошибка при наличии

<clear/>

в качестве дочернего элемента (первого дочернего элемента)

<assemblies>

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

Ответ 11

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

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

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

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

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

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

Ответ 12

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

Ответ 13

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

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

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

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

Ответ 14

Измените идентификатор GUID сборки. Это исправляет многие МНОГИЕ проблемы, которые я нашел.

Ответ 15

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

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

http://localhost/MyApp" 

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

Что действительно озадачивает меня, так это то, что ничего больше не работало, я просмотрел все предложения, которые я смог найти на SO, и ничего не получилось. Странно, что ошибка была (казалось бы, несколько месяцев назад), когда я добавил новый ascx файл, похожий на существующий, который был добавлен из старого проекта .net 2.0 (я думаю) что позволит настраивать пользовательское управление внутри приложения. Он работал, красиво, в течение длительного времени, пока я не попытался добавить этот новый файл. Добавив его и увидев ошибку, я сразу же вернул все изменения, но ошибка Global.ascx не исчезла, даже не сдула весь проект и не стала последней из исходных данных.

Ответ 16

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

Ответ 17

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

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

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

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

Ответ 18

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

Ответ 19

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

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

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

Ответ 20

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

Случилось снова, и на этот раз этот работал у меня.

Ответ 21

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

Ответ 22

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

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

  • foo.aspx
  • foo.aspx.cs
  • foo.aspx.designer.cs
  • oof.aspx
  • oof.aspx.cs
  • oof.aspx.designer.cs

Ответ 23

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

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

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

Ответ 24

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

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

Ответ 25

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

Ответ 26

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

Ответ 27

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

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

Ответ 28

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

Ответ 29

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

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

[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 Community версия 15.3.0 --Win 7 x64 Enterprise --Новый проект > Visual С# > Веб > Веб-приложение ASP.NET > Веб-формы

Ответ 30

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


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