Подтвердить что ты не робот

Сообщение об ошибке Parser: не удалось загрузить тип "sometype"

У меня возникла ошибка, которую я не могу решить в течение некоторого времени. Мне было интересно, может ли кто-нибудь помочь определить причину этой ошибки? Я совершенно новичок в asp/asax. После некоторых исследований я считаю, что ошибка, которую я получаю, связана с тем, что веб-приложение пытается использовать устаревший код. Я думал перестроить файл С# с помощью Visual Studio и/или всего проекта. Тем не менее, я совершенно не знаком с С# и asp, и задавался вопросом, может ли я дать некоторые предложения, если это может решить проблему и/или если есть альтернативное решение.

Сообщение об ошибке

Parser Error Message: Could not load type 'Inventory1.Global'.

Source Error:   <%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>

Все Содержимое Global.asax:

<%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>
4b9b3361

Ответ 1

Попробуйте заменить CodeBehind на CodeFile

Ответ 2

Не удалось загрузить тип

означает, что тип не может быть загружен. (В этом случае "тип" относится к Inventory1.Global). Типы находятся в скомпилированных DLL. Таким образом, либо DLL недоступна, либо устарела, либо не содержит тип public с заданным именем.

Некоторые возможные причины:

  • У вас нет объявленного типа с указанным именем. Для вашего примера вы должны иметь следующее:
namespace Inventory1 {
  public class Global {
  ...
  }
}

Примечание: избегайте имен типа Inventory1. Они подразумевают, что есть Inventory2, Inventory3 и т.д., Что является плохой практикой, так как они являются абсолютными и не очень описательными. Кроме того, Global довольно расплывчато и может ввести путаницу в глобальное пространство имен .

  • Убедитесь, что ваши случаи совпадают (Inventory1, а не Inventory1.)
  • Вы не скомпилировали проект. В VS перестройте решение.
  • Сборка, объявляющая класс, имеет ошибку компиляции, поэтому соответствующая DLL либо отсутствует, либо устарела. Убедитесь, что вы устранили все ошибки.
  • Класс не помечен как public.

Если бы я должен был догадаться, я бы поставил свои деньги на ошибку компиляции. В отличие от PHP и других интерпретируемых языков, С# необходимо скомпилировать, прежде чем они могут быть использованы.

Ответ 3

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

РЕШЕНИЕ Очистите папку bin. Создайте все библиотеки зависимых классов и отнесйте их в основной проект и постройте полное решение.

Я сделал это, и это сработало как шарм для меня.

Ответ 4

У меня была эта ошибка, просто нужно было перестроить проект

Ответ 5

Поскольку это происходило только с IISexpress, изменение вывода с bin\Debug\на bin\решило это для меня. Изменение тега CodeBehind на CodeFile только создало еще больше проблем.

Ответ 6

Это случилось со мной на моей локальной машине. Ошибка была неправильной конфигурации IISExpres. Если эта проблема возникает в вашей локальной среде (отладки Visual Studio), проверьте конфигурационный файл IIS Express. Убедитесь, что ваш локальный сайт/путь приложения указывает на правильное местоположение.

Файл конфигурации называется applicationhost.config. Он хранится здесь: Мои документы > IIS Express > config. Обычно (не всегда) один из этих путей будет работать:

  • % USERPROFILE%\Документы\iisexpress\Config\ApplicationHost.config
  • % userprofile%\мои документы \iisexpress\config\applicationhost.config

Ответ 7

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

(Примечание: вам может не понадобиться делать все это - это дело в отдельности)

  • Если вы внесли какие-либо изменения из IIS Express в локальный IIS, вам может потребоваться изменить конфигурацию сборки с bin/debug на bin. (Щелкните правой кнопкой мыши по решению → Свойства → Сборка → Выход)

  • Если у вас есть URL-адрес перезаписи, вам нужно будет установить URL-адрес перезаписи в локальном IIS.

  • Перейдите к файлу applicationhosts.config (обычно это место как C:\Users\username\Documents\IISExpress\config) и переименуйте файл в applicationhostsOLD.config.

  • Очистите и перестройте свой проект. Возможно, вам придется вручную выгрузить корзину.

Теперь вам должно быть хорошо идти.

Ответ 8

Не удается найти нужный файл в сборке DLL. Перестройте проект, восстановите решение и попробуйте снова.

Ответ 9

Вероятно, вы что-то переименовали. Проверьте файл Global.asax.cs для объявления класса и убедитесь, что пространство имен и имя класса соответствуют точно, что в файле asax. Сюда относится случай! Можете ли вы скопировать/вставить пространство имен и объявление класса .cs файла в сообщение здесь, чтобы мы могли сравнивать?

Ответ 10

Сообщение об ошибке Parser: не удалось загрузить тип __

Выполняя все, что было предложено в комментариях выше, без везения, обновлялось (загружалось) содержимое /bin на сервер. Файлы, загруженные в bin, это: dll, pdb и xml. Не знаю, кто это сделал.

Проблема, которую я здесь вызывала, была переименована в файл (_.aspx) в обозревателе решений.

Ответ 11

Восстановление/повторная публикация моего проекта/решения на сервере ничего не помогло мне, и я сомневаюсь, что это поможет многим из этого затруднительного положения. Для меня я сделал несколько вещей, чтобы устранить эту проблему, которая в конечном итоге вывела меня из этой "дыры".

Я пытался использовать привязку на веб-сайте, но это не сработало. Я пробовал называть сайт с помощью http://localhost/Report.aspx (это была моя домашняя страница, на которую я решил не вызывать Default.aspx). Я собирался обновить раздел "Стандартные документы" с именем позже), когда я получил Parser Error OP saw, Поэтому я пробовал некоторые вещи:

Я остановил старый веб-сайт проекта и создал еще один простой веб-проект, на котором были "привет" и ярлык на странице, и больше ничего. У меня была строка в Page_Load, чтобы заполнить ярлык Text property "world!", Чтобы убедиться, что часть работает. Я создал новый веб-сайт на порту 80 и передал опубликованное содержимое моего сайта на сервер. Поэтому, хотя у меня был .NET 4.5, установленный на сервере (и запустил команду aspnet_regiis -i из каталога 4.0), а в пуле приложений в IIS, который я использовал для этого нового проекта, было установлено значение 4.0, браузер жаловался на web.config имеет targetFramework=4.5.2 в нем, который представляет собой среду Visual Studio 2015 по умолчанию. Поэтому я установил .NET 4.6 (NDP46-KB3045557-x86-x64-AllOS-ENU.exe), перезапустил сервер, а затем работал мой простой сайт. Итак, я удалил этот сайт - все, что я хотел сделать, это доказать, что мои шаги по установке были точными и сервер мог запустить сайт.

Итак, я вернулся к моему оригинальному проекту/сайту - я удалил и заново создал веб-сайт. Я поместил пул приложений в тот, который был изначально создан для этого, и я гарантировал, что он работает с .NET 4.0. Как только я это сделал, я перешел на мой сайт, и все работало при использовании http://localhost/Report.aspx. Поэтому мне кажется, что именно эта версия .NET Framework вы используете.

Ответ 12

Я пробовал все перечисленные выше решения, и никто из них не работал. Наконец, я создал новую веб-страницу (webform) и скопировал весь код (cs и aspx files) в нее из старого, удалил старый файл cs и aspx, перекомпилировал, а теперь вернулся в бизнес. Я знаю, что это не имеет никакого смысла. Это не должно было иметь значения, но это сработало.

Ответ 13

Попробуйте открыть проект Project/Solution, скорее всего, он устранит ошибку. Этот тип ошибки Не удалось загрузить тип.... возникает, когда мы пытаемся открыть проект как веб-сайт.

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

Ответ 14

Пожалуйста, проверьте пространство имен и имя класса во всех местах. В одном случае один член команды изменил пространство имен, и я использовал старое пространство имен в файле .aspx. Это вызывало проблему. Я обновил пространство имен и начал работать.

Ответ 15

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

Ответ 16

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

Ответ 17

У меня возникла та же проблема после переименования страницы aspx. Visual Studio переименовала ее, но удалила пространство имен. Убедитесь, что свойство Inherits содержит полностью определенное имя, включая пространство имен.