Сообщение об ошибке синтаксического анализатора: не удалось загрузить тип 'sometype'
Я испытываю ошибку, которую я не могу решить в течение некоторого времени. Мне было интересно, может ли кто-нибудь помочь определить причину этой ошибки? Я совершенно новичок в asp / asax. После некоторых исследований я думаю, что ошибка, которую я получаю, связана с веб-приложением, пытающимся использовать устаревший код. Я думал перестроить файл c# с помощью Visual Studio и / или всего проекта. Тем не менее, я совершенно новичок в C# и asp, и мне было интересно, может ли это дать мне некоторые предложения решить проблему и/или если есть возможность альтернативного решения.
сообщение об ошибке
Parser Error Message: Could not load type 'Inventory1.Global'.
Source Error: <%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>
весь глобальные.содержание эйсакс:
<%@ Application Codebehind="Global.asax.cs" Inherits="Inventory1.Global" %>
15 ответов
не удалось загрузить тип
означает, что тип не может быть загружен. (В этом случае "тип" означает Inventory1.Global
). Типы расположены в скомпилированных DLL. Таким образом, либо DLL недоступна, устарела, либо не содержит public
тип с заданным именем.
возможные причины:
- у вас нет типа, объявленного с заданным именем. Для вашего примера, вы должны иметь следующий:
namespace Inventory1 { public class Global { ... } }
Примечание: избегайте таких имен, как Inventory1
. Они подразумевают, что существует Inventory2
, Inventory3
, etc., который является плохой практикой, так как они abmiguous и не очень описательные. Кроме того,Global
довольно расплывчато и может привести к путанице с глобальное пространство имен.
- убедитесь, что ваши дела соответствуют (
Inventory1
, а неINVENTORY1
.) - вы не собрали проект. В VS перестройте решение.
- сборка, объявляющая класс, имеет ошибку компиляции, поэтому соответствующая DLL отсутствует или устарела. Убедитесь, что вы разрешили все ошибки.
- класс не помечен как
public
.
если бы мне пришлось угадывать, я бы поставил на ошибку компиляции. В отличие от PHP и других интерпретируемых языков, C# должны быть успешно скомпилированы, прежде чем их можно будет использовать.
Я столкнулся с этой проблемой, и я получил решение от здесь и я хотел бы поделиться им.
решение Очистите папку bin. Создайте все зависимые библиотеки классов и ссылайтесь на них в основном проекте и создайте полное решение.
Я сделал это и он работал как шарм для меня !!
Это случилось со мной на моей локальной машине. Вопрос был некорректен IISExpres конфигурации. Если эта проблема возникает в локальной среде (выполняется отладка Visual Studio), проверьте файл конфигурации IIS Express. Убедитесь, что путь к локальному сайту/приложению указывает на правильное расположение.
файл конфигурации называется applicationhost.config
. Он хранится здесь:
Мои Документы > IIS Express > config . Обычно (не всегда) один из этих путей будет работа:
- %userprofile%\documents\iisexpress\config\applicationhost.config
- %userprofile%\Мои документы\iisexpress\config\applicationhost.config
после поиска того, что могло бы вызвать это, я нашел несколько вещей, которые мне нужно было сделать, чтобы запустить мой проект...
(Примечание: возможно, Вам не нужно делать все это - это в каждом конкретном случае)
если вы внесли какие-либо изменения из IIS Express в локальный IIS, вам может потребоваться изменить конфигурацию сборки из
bin/debug
доbin
. (Щелкните правой кнопкой мыши решение > > свойства > > сборка > > вывод)если у вас есть ЧПУ, то вам нужно будет установить URL переписать на локальном IIS.
перейти к
applicationhosts.config
файл (обычно это какое-то место, напримерC:\Users\username\Documents\IISExpress\config
) и переименовать файл вapplicationhostsOLD.config
.очистить и перестроить проект. Возможно, вам придется вручную очистить корзину.
поскольку это происходило только с IISexpress, изменение вывода из bin\Debug\ в bin\ решило его для меня. Изменение тега CodeBehind на CodeFile только создало еще больше проблем.
вероятно, вы что-то переименовали. Проверь Глобал.асакс.cs-файл для объявления класса и убедитесь, что пространство имен и имя класса соответствуют ровно что находится в файле asax. Это включает в себя дело! Можете ли вы скопировать / вставить объявление пространства имен и класса .cs-файл в сообщение здесь, чтобы мы могли сравнить?
сообщение об ошибке синтаксического анализатора: не удалось загрузить тип __
после выполнения всего, что было предложено в комментариях выше, без везения, обновление (загрузка) содержимого /bin на сервер сработало. Файлы, загруженные в bin, являются: dll, pdb и xml. Не знаю, кто это сделал.
проблема, которую я здесь имел, была вызвана переименованием файла (_.aspx) в обозревателе решений.
перестройка / повторная публикация моего проекта / решения на сервере ничего не сделала, чтобы помочь мне, и я сомневаюсь, что это поможет многим из этого затруднительного положения. Для меня я сделал несколько вещей, чтобы устранить это, что в конечном итоге вытащило меня из этой "дыры".
Я пытался использовать привязки на веб-сайте, но это не работает. Я попытался позвонить на сайт с http://localhost/Report.aspx
(Это была моя домашняя страница, которую я решил не называть Default.aspx
- Я собирался обновить раздел "Документы по умолчанию" с именем позже), когда я получил ошибку парсера, OP увидел. Поэтому я попробовал некоторые вещи:
Я остановил сайт старого проекта и построил другой, простой веб-проект, который имел "привет" и ярлык на странице и ничего больше. У меня была строка в Page_Load, чтобы заполнить свойство Text метки "world!- просто чтобы убедиться, что эта часть работает. Я создал новый веб-сайт на порту 80 и передал опубликованное содержимое моего сайта на сервер. Хоть я и был .Нетто 4.5 установленный на сервере (и запустил команду aspnet_regiis-i из каталога 4.0), а пул приложений в IIS, который я использовал для этого нового проекта, был установлен в 4.0, браузер пожаловался на веб-сайт.конфигурация, имеющая 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-файлы) из старого, удалил старый cs и aspx-файл, перекомпилировал, и теперь я вернулся в бизнес. Я знаю, что это бессмысленно. Это не должно было иметь значения, но сработало.
пожалуйста, попробуйте открыть свой проект как проект / решение, скорее всего, он разрешит ошибку. Этот тип ошибки не удалось загрузить тип.... возникает, когда мы пытаемся открыть проект как сайт.
Я попытался открыть свой проект как решение, и это решило мою проблему.
пожалуйста, проверьте пространство имен и имя класса во всех местах, в одном случае один член команды изменил пространство имен ,и я использовал старое пространство имен.файл ASPX. Это вызывало проблемы. Я обновил пространство имен, и оно заработало.
Он не может найти необходимый файл в сборке dll. Перестройте проект, перестройте решение и повторите попытку.
я исправлял свои пространства имен в нашем базовом проекте, и я начал видеть эту ошибку в другом проекте, который ссылается на нее после этого. Мне пришлось удалить ссылку на базовый проект и повторно добавить его, а затем он начал работать снова.