Ответ 1
Попробуйте заменить CodeBehind на CodeFile
У меня возникла ошибка, которую я не могу решить в течение некоторого времени. Мне было интересно, может ли кто-нибудь помочь определить причину этой ошибки? Я совершенно новичок в 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" %>
Попробуйте заменить CodeBehind на CodeFile
Не удалось загрузить тип
означает, что тип не может быть загружен. (В этом случае "тип" относится к Inventory1.Global
). Типы находятся в скомпилированных DLL. Таким образом, либо DLL недоступна, либо устарела, либо не содержит тип public
с заданным именем.
Некоторые возможные причины:
namespace Inventory1 { public class Global { ... } }
Примечание: избегайте имен типа Inventory1
. Они подразумевают, что есть Inventory2
, Inventory3
и т.д., Что является плохой практикой, так как они являются абсолютными и не очень описательными. Кроме того, Global
довольно расплывчато и может ввести путаницу в глобальное пространство имен .
Inventory1
, а не Inventory1
.)public
.Если бы я должен был догадаться, я бы поставил свои деньги на ошибку компиляции. В отличие от PHP и других интерпретируемых языков, С# необходимо скомпилировать, прежде чем они могут быть использованы.
Я столкнулся с этой проблемой, и я получил решение от здесь, и я хотел бы поделиться им.
РЕШЕНИЕ Очистите папку bin. Создайте все библиотеки зависимых классов и отнесйте их в основной проект и постройте полное решение.
Я сделал это, и это сработало как шарм для меня.
У меня была эта ошибка, просто нужно было перестроить проект
Поскольку это происходило только с IISexpress, изменение вывода с bin\Debug\на bin\решило это для меня. Изменение тега CodeBehind на CodeFile только создало еще больше проблем.
Это случилось со мной на моей локальной машине. Ошибка была неправильной конфигурации IISExpres. Если эта проблема возникает в вашей локальной среде (отладки Visual Studio), проверьте конфигурационный файл IIS Express. Убедитесь, что ваш локальный сайт/путь приложения указывает на правильное местоположение.
Файл конфигурации называется applicationhost.config
. Он хранится здесь:
Мои документы > IIS Express > config. Обычно (не всегда) один из этих путей будет работать:
После того, как я потрудился за то, что могло вызвать это, я нашел несколько вещей, которые мне нужно сделать, чтобы запустить мой проект...
(Примечание: вам может не понадобиться делать все это - это дело в отдельности)
Если вы внесли какие-либо изменения из IIS Express в локальный IIS, вам может потребоваться изменить конфигурацию сборки с bin/debug
на bin
. (Щелкните правой кнопкой мыши по решению → Свойства → Сборка → Выход)
Если у вас есть URL-адрес перезаписи, вам нужно будет установить URL-адрес перезаписи в локальном IIS.
Перейдите к файлу applicationhosts.config
(обычно это место как C:\Users\username\Documents\IISExpress\config
) и переименуйте файл в applicationhostsOLD.config
.
Очистите и перестройте свой проект. Возможно, вам придется вручную выгрузить корзину.
Теперь вам должно быть хорошо идти.
Не удается найти нужный файл в сборке DLL. Перестройте проект, восстановите решение и попробуйте снова.
Вероятно, вы что-то переименовали. Проверьте файл Global.asax.cs для объявления класса и убедитесь, что пространство имен и имя класса соответствуют точно, что в файле asax. Сюда относится случай! Можете ли вы скопировать/вставить пространство имен и объявление класса .cs файла в сообщение здесь, чтобы мы могли сравнивать?
Сообщение об ошибке Parser: не удалось загрузить тип __
Выполняя все, что было предложено в комментариях выше, без везения, обновлялось (загружалось) содержимое /bin на сервер. Файлы, загруженные в bin, это: dll, pdb и xml. Не знаю, кто это сделал.
Проблема, которую я здесь вызывала, была переименована в файл (_.aspx) в обозревателе решений.
Восстановление/повторная публикация моего проекта/решения на сервере ничего не помогло мне, и я сомневаюсь, что это поможет многим из этого затруднительного положения. Для меня я сделал несколько вещей, чтобы устранить эту проблему, которая в конечном итоге вывела меня из этой "дыры".
Я пытался использовать привязку на веб-сайте, но это не сработало. Я пробовал называть сайт с помощью 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 вы используете.
Я пробовал все перечисленные выше решения, и никто из них не работал. Наконец, я создал новую веб-страницу (webform) и скопировал весь код (cs и aspx files) в нее из старого, удалил старый файл cs и aspx, перекомпилировал, а теперь вернулся в бизнес. Я знаю, что это не имеет никакого смысла. Это не должно было иметь значения, но это сработало.
Попробуйте открыть проект Project/Solution, скорее всего, он устранит ошибку. Этот тип ошибки Не удалось загрузить тип.... возникает, когда мы пытаемся открыть проект как веб-сайт.
Я попытался открыть свой проект как решение, и он решил мою проблему.
Пожалуйста, проверьте пространство имен и имя класса во всех местах. В одном случае один член команды изменил пространство имен, и я использовал старое пространство имен в файле .aspx. Это вызывало проблему. Я обновил пространство имен и начал работать.
Я исправлял свои пространства имен в нашем Базовом проекте, и я начал видеть эту ошибку в другом проекте, который ссылается на него после этого. Мне пришлось удалить ссылку на базовый проект и заново добавить его, и тогда он снова начал работать.
Я только что получил эту ошибку сегодня. Оказывается, это потому, что я по ошибке вернул файл проекта к более старой версии, которая больше не содержала страницу.
У меня возникла та же проблема после переименования страницы aspx. Visual Studio переименовала ее, но удалила пространство имен. Убедитесь, что свойство Inherits содержит полностью определенное имя, включая пространство имен.