В моем приложении .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 он компилируется нормально
Ответы:
Одна из ситуаций, с которыми я столкнулся, вызвавшая эту проблему, - это когда вы указываете платформу для сборки через «Build Configuration».
Если вы укажете 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, и я столкнулся с аналогичной проблемой.
Я обновил класс как
partial
класс, и он работал нормально.источник
Я перезапустил Visual Studio, и ошибка исчезла!
источник
Вот еще одна для книг. Похоже, что это происходит, когда вы запускаете более одного веб-приложения с одного и того же номера порта.
По сути, у меня есть пара веток, над которыми я работаю, у меня есть основная ветка, промежуточная ветка и ветвь выпуска. Когда я переключил ветку на промежуточную, я заметил, что она использует ту же конфигурацию адреса порта, поэтому решил изменить это. Затем я получил еще одно предупреждение о том, что это резервирование конфликтует с другим настроенным приложением. Сервер IIS Express чувствителен к этому и по какой-то причине блокирует конфигурацию.
Просто выбрав третий незатронутый порт, эта проблема исчезла, потому что он затем сопоставляет порт с новым сопоставлением каталогов (мои ветки расположены на диске по-другому). Я заметил это, потому что я пытался изменить имя типа, на которое указывает,
Global.asax
но имя типа не изменилось даже после перезапуска сервера, поэтому ясно, что изменяемый мной код не отражался при развертывании IIS Express.Итак, прежде чем вы потеряете из-за этого слишком много сна, попробуйте изменить номер порта IIS, который в настоящее время используется для запуска веб-проекта.
источник
У меня отлично работает В VS 2015. Теперь я могу использовать глобальное событие. В моем
Global.asax
файле есть эта строкаИ я создаю файл класса,
Global.asax.cs
который находится вAppCode
папке, которая выглядит какЯ надеюсь, это поможет
источник
Проверьте действие сборки Global.asax.cs. Он должен быть установлен на Compile.
В обозревателе решений щелкните правой кнопкой мыши файл Global.asax.cs и перейдите в раздел «Свойства». На панели «Свойства» установите действие сборки ( без отладки).
Кажется, что VS 2008 не всегда правильно добавляет файлы .asax (.cs) по умолчанию.
источник
У меня возникла аналогичная ошибка при наличии
пометить как дочерний элемент (первый ребенок)
в моем Web.config . Я вставил теги в свой файл web.config, пытаясь предотвратить наследование конфигурации в приложении, развернутом на «Веб-сайте по умолчанию» в IIS.
источник
В моей ситуации это было связано с типом проекта веб-сайт / веб-приложение. Недавно мы перешли на MVC, и нам пришлось заменить его на веб-приложение.
Итак, решение было простым: выберите свой веб-сайт в обозревателе решений и удалите его из решения, затем щелкните решение правой кнопкой мыши и выберите Добавить -> Существующий проект ( не веб-сайт ), перекомпилируйте веб-сайт.
источник
Старый пост, но я получаю эту ошибку при попытке преобразовать проект веб-сайта в проект веб-приложения.
Следуйте инструкциям по этой ссылке . У меня все еще возникает ошибка global.asax, но все, что я сделал, это удалил ее и снова добавил, щелкнув правой кнопкой мыши проект в Visual Studio и выбрав добавить новый элемент. Добавьте файл global.asax, и все заработало.
источник
К сожалению, ни один из них не помог мне. Обнаруженное мной исправление было более специфичным для разработки, в частности, отладки на вашем локальном компьютере. Кроме того, к сожалению, это не решает проблему так, как я надеялся, но если вы слишком остроумны, это может снова заставить вас бежать.
TL; DR: в свойствах проекта на вкладке «Интернет» в разделе «Серверы» выберите «Использовать локальный веб-сервер IIS». Адрес,
уже был заполнен (у меня IIS7, .NET 4.0). Первоначально был выбран вариант «Использовать Visual Studio Development Server» с виртуальным путем «/».
Что меня действительно озадачивает, так это то, что ничто другое не работало, я просмотрел все предложения, которые мог найти по SO, и ничего не сработало. Странно то, что ошибка (по-видимому, прошло несколько месяцев с тех пор, как я последний раз смотрел), проявилась, когда я добавил новый файл ascx, который был похож на существующий, который был добавлен из старого проекта .net 2.0 (я думаю) это позволит настраивать управление пользователями из приложения. Он работал прекрасно, долгое время, пока я не попытался добавить этот новый файл. После добавления и просмотра ошибки я быстро отменил все изменения, но ошибка Global.ascx не исчезла, даже не уничтожив весь проект и не получив последнюю версию из системы контроля версий.
источник
Я преобразовал свое решение из VS2003 в VS2010, и у меня возникли проблемы с преобразованием проекта веб-приложения.
Я испытал ту же проблему, и ни один из ответов не помог мне.
Для меня сработало:
Казалось бы, проблемы, которые у меня возникли при конвертации, по какой-то причине удалили проект веб-приложения из сборки.
Надеюсь, этот ответ поможет любому, у кого есть такая же проблема ...
источник
Если вы перестраиваете или изменяете проект и перемещаете файлы из старого, не забудьте проверить блок Inherit вашего global. В моем случае бывший проект / решение было названо интрасетью, и я воссоздал его как интрасеть, но когда я перемещался по файлам, ему не нравились строчные буквы (да). Просто просмотрите имена файлов.
источник
Измените GUID сборки. Я обнаружил, что это решает МНОГИЕ проблемы.
источник
У меня были похожие проблемы, когда я получал эту ошибку в проекте.
Потратив некоторое время, я подозреваю, что функция с возможными ошибками в классе ... позже комментирует эту конкретную функцию, и моя проблема решена.
Я не знаю, почему Visual Studio не выдала мне эту конкретную ошибку во время отладки. Но эта ошибка может возникнуть из-за некоторых ошибок в файле класса ..
источник
Эта работа для меня: Первое: кажется, что независимо от того, что вы говорили визуальной студии, ide всегда просматривает файл в: bin (для веб-приложения и, конечно же, в моем случае) Итак, даже когда я сказал Visual Studio конкретный путь для загрузки файла, ide продолжает искать неправильный путь. Поэтому я меняю в: Build / Configuration Manager тип вывода на: Release (ранее я очищал решение, даже вручную), поэтому, когда файл .dll был создан, я вручную переместился в папку «bin» в проекте / решении. папка. Надеюсь, это будет полезно !!
источник
В моем случае это было из-за моего целевого процессора (x64), я изменил его на x86, очистил проект, перезапустил VS (2012) и перестроил проект; потом его не было.
источник
Когда я столкнулся с этой проблемой совсем недавно, я попробовал все, что здесь упоминалось, но безрезультатно. Вырвав волосы, я решил попробовать удалить всю свою базу кода (да, в довольно отчаянии!), А затем повторно загрузил все из моего репозитория кода. После этого все снова заработало нормально.
Кажется крайним решением, но я просто подумал, что включу его здесь, поскольку об этом раньше не упоминалось в этой теме.
(Обратите внимание, что в другой раз я столкнулся с этой проблемой, когда Global.asax наследовал от компонента, который необходимо зарегистрировать на хост-машине. Этого не было, поэтому у меня возникла та же проблема).
TL; DR; Если все ответы в этой цепочке не работают для вас, попробуйте удалить, а затем повторно загрузить всю базу кода!
источник
Я сталкивался с этой проблемой несколько раз, и в каждом случае я перестраивал компьютер или переключался на новый компьютер. Мой первый шаг (помимо обновления машины и установки Visual Studio) - это вытащить мои проекты из Git и протестировать их.
Я сталкиваюсь с этой ошибкой каждый раз, потому что пытался получить доступ к своему локальному коду перед его компиляцией. Видите ли, у меня есть настройки Git и Subversion, чтобы игнорировать мои папки bin / build, поэтому после извлечения из моего репозитория я забыл запустить сборку, которая извлекает необходимые пакеты из Nuget (поскольку у меня Git / SVN тоже игнорирует их) и создает DLL, необходимые для запуска моего приложения.
Я сомневаюсь, что это решит проблемы большинства людей, но я не видел его в списке возможных решений, поэтому решил добавить.
источник
В моем случае я добавил Global.asax в проект WCF, чтобы поэкспериментировать с ним, но решил удалить его. Я удалил его из обозревателя решений, но поскольку он все еще находился в папке, конвейер все еще находил его и вызывал эту ошибку.
Я удалил Global.ASAX и GLobal.asax.cs из файловой системы, и это устранило ошибку.
источник
Проработав в разработке почти 20 лет, этот каштан продолжал мучить меня в нескольких проектах.
Таким образом, сегодня, когда я снова столкнулся с этой же проблемой в отношении другого проекта, я решил продолжить расследование, и я действительно считаю, что это связано с расположением папки Bin ... или, более конкретно, с путем вывода папки bin.
Для меня для простого веб-приложения на основе службы, настроенного для запуска / отладки через IIS, он менял выходной путь с bin \ debug на bin \, что разрешило его
Серьезно надеется, что это поможет.
источник
Я был сбит с толку той же чертовой проблемой. Я пытался удалить и
global.asax
(закрыл VS2010 перед добавлением). Очистил проект / решение, проверил любые изменения в конфигурации веб-приложения и другие вещи, которые работали для других людей здесь, в потоках SO. Я наконец очистил решение, удалил папки bin / obj и остановил все запущенные серверы разработки VS2010, затем отменил все изменения и обнаружил, что приложение снова работает. Я переделал то же самое, и теперь он работает нормально.Произошло снова, и на этот раз это решение сработало для меня.
источник
перейдите в диспетчер конфигурации в разделе свойств вашего решения. Затем убедитесь, что все проекты и собираются, и это не будет проблемой.
источник
Мне пришлось удалить (дублировать) файлы с диска, которые не были включены в проект. Похоже, дубликаты были вызваны неудачным переименованием. Имена файлов были разные, но код одинаковый.
После удаления всех файлов oof. * Я смог просканировать.
источник
в моем случае это был IISExpress, указывающий на тот же порт, что и IIS, чтобы решить его, перейдите к
и найдите порт, вы найдете
<site>...</site>
тег, который вам нужно удалить или прокомментироватьисточник
У меня была эта проблема при развертывании только на prod server. В других моих средах это работает ... Я просто удалил материал в папке bin, затем повторно опубликовал, и после этого он работал.
источник
Если вы используете Visual Studio, вероятно, вы пытаетесь запустить приложение в режиме выпуска, попробуйте изменить его на режим отладки.
источник
Я безуспешно пытался восстановить решение и очистить временные файлы ASP.NET.
Но после запуска IISRESET ошибка исчезла.
Обновление : через месяц у меня снова возникла та же проблема. Я заметил, что MyWebsite.DLL существует в папке bin, но не существует во временных файлах ASP.NET (C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files). Я пробовал несколько вещей, которые предлагаются по этому поводу и «Сообщение об ошибке парсера: не удалось загрузить тип» в вопросах Global.asax (я действительно забыл о своем собственном ответе), но ошибка снова исчезла только после IISRESET
источник
Что ж, в моем случае VS 2017 эта проблема вызывала легкая загрузка решения. Я отключил его и перезапустил VS, затем восстановил свое решение, и проблема исчезла.
источник
Просто хотел добавить свои два цента. Я получал ту же ошибку, и безрезультатно пробовал все предложения. Моя ситуация, наверное, другая?
Оказалось, что в автоматически созданном файле AssemblyInfo.cs были лишние пробелы, которые мешали мне запустить веб-приложение (через отладку). Вот как выглядел файл:
Убив пробелы в AssemblyCompany и AssemblyCopyright, я наконец смог собрать и запустить проект.
Наблюдается в следующей среде: --Visual Studio 2017 Community версии 15.3.0 - Win 7 x64 Enterprise - Новый проект> Visual C #> Интернет> Веб-приложение ASP.NET> Веб-формы
источник