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




asp.net webforms (20)

  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
        //
    }
}

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

https://code.i-harness.com

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


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

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


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


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

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

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

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


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


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


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

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

http://localhost/MyApp" 

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

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


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

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

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

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


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


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

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

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

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


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

Оказывается, автогенерируемый файл «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> Веб-формы


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

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


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

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

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

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


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


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

<clear/>

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

<assemblies>

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


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

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

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


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


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

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


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

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


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

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

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





global-asax