Как создать IIS-сайт из powershell для размещения приложения .net core 2.0, ошибка 0x8007000d - PullRequest
0 голосов
/ 29 июня 2018

Ожидаемый результат :

IIS правильно размещает мое приложение, и когда я перехожу на URL своего приложения (например, blabla / swagger), я вижу пользовательский интерфейс swagger, описывающий мое приложение

Задача

Когда я пытаюсь перейти к своему приложению, оно говорит:

HTTP Error 500.19 - Internal Server Error
The requested page cannot be accessed because the related configuration data for the page is invalid.

Информация

Я собрал приложение в .net core 2.0 и смог запустить его через visual studio, размещенную на Kestrel. Однако мне нужно развернуть это приложение на разных серверах, и поскольку Kestrel не поддерживает имена хостов, мне нужно, чтобы оно размещалось в IIS. Когда я запускаю его через Kestrel, я могу получить к нему правильный доступ и, перейдя по адресу url / swagger, я могу увидеть правильную страницу swagger, которая описывает приложение. Мое приложение публикуется от visual studio. Это означает, что в его опубликованной папке есть все библиотеки, которые нужны приложению. Оно публикуется как зависимое от фреймворка приложение, а не как отдельное, но это не должно иметь значения.

Как повторить проблему

Поскольку мне нужно, чтобы этот день был размещен в IIS внутри контейнера Docker, я пытаюсь сделать его размещенным в IIS с помощью сценариев powershell. Чтобы сделать его размещенным в IIS, выполните следующие действия:

New-Website -Name 'myTestApp' -force -Port 8080 -PhysicalPath
'C:\Users\myUser\Desktop\Docker\PublishOutput' -ApplicationPool 'MyAppPoolTest'

Где C: \ Users \ myUser \ Desktop \ Docker \ PublishOutput - это путь к опубликованной папке, где Visual Studio публикует приложение. Заранее спасибо!

Это файл web.config, сгенерированный Visual studio при публикации:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Friss.CaseApi.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 313d542d-7676-4440-ae1b-22c6071f4309-->

И страница ошибки:

enter image description here

Я неправильно настраиваю web.config?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

Нашли решение,

системе требуется пакет хостинга Windows с ядром dotnet. В комплекте устанавливаются .NET Core Runtime, .NET Core Library и ASP.NET Core Module.

Документация: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1&tabs=aspnetcore2x

Прямая загрузка в пакет для .netcore 2.0.6, которая решила мою проблему: https://download.microsoft.com/download/8/D/A/8DA04DA7-565B-4372-BBCE-D44C7809A467/DotNetCore.2.0.6-1-WindowsHosting.exe

0 голосов
/ 29 июня 2018

Проверьте документацию здесь

  1. Вам необходимо опубликовать свой веб-сайт, а затем указать веб-сайт IIS на опубликованную папку
  2. Пул приложений должен быть установлен на No Managed code
  3. Пользователь пула приложений IIS AppPool\{AppPoolName} должен иметь права на чтение в папке опубликованного сайта
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...