Ответ 1
Из github IISSample (спасибо @Pawel и Luke), вот значения возможностей:
<!-- This set of attributes are used for launching the sample using IISExpress via Visual Studio tooling -->
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
<!-- This set of attributes are used for launching the sample for full CLR (net451) without Visual Studio tooling -->
<aspNetCore processPath=".\IISSample.exe" arguments="" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
<!-- This set of attributes are used for launching the sample for Core CLR (netcoreapp1.0) without Visual Studio tooling -->
<aspNetCore processPath="dotnet" arguments=".\IISSample.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
После нескольких часов работы с ними я обнаружил, что есть два web.configs, с которыми нам нужно иметь дело: src\ProjectName\wwwroot\web.config
и src\ProjectName\web.config
. Если у вас нет последнего, публикация VS2015 будет генерировать один для вас с %LAUNCHER_PATH%
и %LAUNCHER_ARGS%
по умолчанию.
Чтобы проект запускался и отлаживался локально в VS2015 через IISExpress, для web.config необходимо иметь значение по умолчанию ниже. Замена LAUNCHER_PATH и LAUNCHER_ARGS на что-то еще приводит к тому, что VS2015 вешает бесконечно.
<aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
Однако при развертывании в IIS (я использую 8.5 на WinServer 2012 R2) значение на src\ProjectName\web.config
должно быть заменено следующим. Если сконфигурировано, команда dotnet publish-iis
должна выполнить замену для вас (см. Ниже).
<aspNetCore processPath="dotnet" arguments=".\ProjectName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
Если вы переходите из RC1, измените связанный с http каталог, а также в корневую папку Project, а не wwwroot. Пример: от C:\inetpub\ProjectName\wwwroot
до C:\inetpub\ProjectName
.
Чтобы настроить publish-iis
для автоматической замены, добавьте этот фрагмент в свой проект. json: (Спасибо @Pawel)
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final"
}
},
"scripts": {
"postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
}
Сегмент инструмента IISIntegration преобразует эти параметры Launcher в соответствующие значения развертывания. Без него вы получите следующую ошибку:
No executable found matching command "dotnet-publish-iis"
Я использую RC2 Toolkit Preview 1.