IIS/ASP.NET не находит двоичные файлы моего веб-приложения

IIS 10.0 под Windows 10 Pro. АСП.НЕТ 4.7

Пожалуйста, считайте, что это вопрос новичка - я давно не работал с IIS.

Я исследую некоторые проблемы, которые, по-видимому, возникают только в IIS (по сравнению с запуском веб-сайта в Visual Studio 2017). Итак, я установил IIS 10.0 на свой компьютер для разработки Windows и опубликовал свой веб-сайт в IIS. Описанная ниже ошибка НЕ ​​является той, которую я изучаю, а является препятствием при попытке настроить мой веб-сайт на моем локальном IIS.

Когда я пытаюсь получить доступ к "домашней" странице, я получаю сообщение об ошибке Parser Error.

Description: An error occurred during the parsing of a resource required to service this request. Please review the following specific parse error details and modify your source file appropriately.

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

Source Error:

Line 1: <%@ Application Codebehind = "Global.asax.cs" Inherits = "WingtipToys.Global" Language = "C#" %>

Source File: /global.asax Line: 1

(Я также пытался запустить пример веб-сайта Microsoft Wingtip Toys, и я получаю ту же ошибку, что и на своем веб-сайте. Выше показана ошибка Wingtip Toys.)

В моем приложении есть папка BIN (установленная в IIS), в этой папке есть WingtipToys.dll и (согласно .NET Reflector) в DLL есть класс WingtipToys.Global.

Я думал, что ASP.NET будет искать папку BIN и использовать любые найденные там библиотеки DLL.

Поскольку и игрушки Wingtip, и мои веб-сайты показывают одну и ту же ошибку в IIS и оба нормально работают в VS 2017, я подозреваю, что это может быть ошибка конфигурации IIS или ASP.NET с моей стороны.

Что мне нужно сделать, чтобы IIS/ASP.NET мог найти двоичные файлы в моей папке BIN? Одно предложение, которое я нашел, заключалось в том, чтобы поместить следующее в мой веб-сайт web.config:

  <system.web>
      <compilation targetFramework = "4.5">
          <assemblies>
              <add assembly = "*" />
          </assemblies>
      </compilation>
  </system.web>

Хотя это работает, нам, по-видимому, это не нужно на нашем производственном веб-сайте (тот, который я пытаюсь устранить). (Кроме того, наш рабочий файл web.config содержит около 40 сборок, ВСЕ из которых находятся в папке BIN веб-сайта. Мне это кажется излишним.)

Я должен что-то упустить.

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

Есть ли WingtipToys.dll в GAC? Может загружается старая версия??

Rich-Lang 09.04.2019 22:40

Я не видел WingtipToys.dll (и DLL моего веб-сайта) в GAC. Просто стандартные вещи - в значительной степени. Спасибо!

RandyB 09.04.2019 22:54

Я бы, вероятно, использовал Fusion Logs и посмотрел, не увижу ли я чего-нибудь неожиданного: docs.microsoft.com/en-us/dotnet/framework/tools/…

Rich-Lang 09.04.2019 23:12

Я использовал программу просмотра Fusion Log (раньше я пользовался этим инструментом несколько раз), но ошибок привязки не обнаружил. Я проверял как успешные, так и неудачные привязки, перезапуская IIS перед каждой попыткой. Все успешные привязки предназначены для стандартных сборок System/Microsoft; неудачных привязок не было. Я не вижу никаких попыток привязки к WingtipToys.dll. Это может быть сбой процесса перед любой попыткой связывания.

RandyB 10.04.2019 19:59
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
513
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как я понял, в моей конфигурации IIS чего-то не хватало. Мое оригинальное веб-приложение и другие примеры веб-приложений, которые я использовал для тестирования, были скомпилированы как «Любой процессор». В IIS в каждом из пулов приложений, которые я использовал для этих приложений, для параметра «Включить 32-разрядные приложения» (в разделе «Дополнительные параметры») установлено значение False. Как только я установил для каждого из них значение True, все веб-приложения заработали должным образом.

Мне больше не нужен обходной путь «добавить сборку = *» — похоже, ASP.NET снова находит то, что ему нужно, в папке BIN. Также была дополнительная ошибка ASP.NET, не находящая поставщика сборки для файлов ASPX. Эта дополнительная ошибка также исчезла.

Надеюсь, это поможет кому-то в будущем. Спасибо за ответы!

Другие вопросы по теме