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




asp.net webforms namespaces global-asax (25)

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

В моем приложении .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 он компилируется в порядке


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

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


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

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

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


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

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


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

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

http://localhost/MyApp" 

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

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


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

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

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

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

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

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


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

Работает отлично для меня В 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
        //
    }
}

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


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

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

public partial class Global : System.Web.HttpApplication

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


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


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

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


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


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

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

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

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


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

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

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

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


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


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

<clear/>

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

<assemblies>

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


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

Оказывается, автогенерируемый файл «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 Community version 15.3.0 --Win 7 x64 Enterprise - Новый проект> Visual C #> Веб> Веб-приложение ASP.NET> Веб-формы


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

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

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


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


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

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

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

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


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


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

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

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

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


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


Один из вариантов заключается в том, чтобы реорганизовать этот цикл в метод (метод «extract») и использовать return .





c# asp.net webforms namespaces global-asax