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

IIS 10.0 под Windows 10 Pro.ASP.NET 4.7

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

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

Когда я пытаюсь получить доступ к «домашней» странице, я получаю ошибку синтаксического анализатора.

Описание: Произошла ошибка при разборе ресурса, необходимого для обслуживания этого запроса.Пожалуйста, просмотрите следующую конкретную информацию об ошибке разбора и измените исходный файл соответствующим образом.

Сообщение об ошибке синтаксического анализатора: не удалось загрузить тип 'WingtipToys.Global'.

Ошибка источника:

Строка 1: <% @ Application Codebehind = "Global.asax.cs"Inherits =" WingtipToys.Global "Language =" C # "%>

Исходный файл: /global.asax Строка: 1

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

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

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

Поскольку и Wingtip Toys, и мои веб-сайты показывают одинаковую ошибку в 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 веб-сайта. Это мне кажется излишним.)

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

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

1 Ответ

0 голосов
/ 12 апреля 2019

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...