Я пытаюсь выполнить автоматическое c развертывание с MSDeploy, но как только я перешел на использование пула приложений, я получил следующую ошибку:
Using a 64-bit source and a 32-bit destination with provider appHostConfig is not supported.
При развертывании мне нужно указать имя пула приложений для использовать. Сервер 64 битный.
MSBuild
"%SOAB_MSBUILD_EXE%" "%SOAB_LOCAL_APP_PATH%\WebAPI\WebAPI.csproj" /t:Package /p:Configuration=Debug;PublishProfile=CI /p:VisualStudioVersion=16.0 /p:IncludeIisSettings=true /p:IncludeAppPool=true
MSDeploy
CALL "%SOAB_LOCAL_APP_PATH%\WebAPI\obj\Debug\Package\WebAPI.deploy.cmd" /Y "-setParam:'IIS Web Application Name'='Default Web Site\WebAPI'" "-setParam:'IIS Web Application Pool Name'='MyAppPool'"
MSBuild Path
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\amd64\msbuild.exe
Все, что заключено в %%, - это переменные, заменяемые во время выполнения сборкой server.
Все работало, как и ожидалось, пока я не попытался изменить ApplicationPool с помощью MSDeploy. Чтобы пул приложений работал, я добавил следующие параметры в команду MSBuild /p:IncludeIisSettings=true /p:IncludeAppPool=true
и включил имя / значение setParam в команду MSDeploy. Я не могу использовать DefaultAppPool. Любая помощь приветствуется относительно того, что я делаю неправильно, заранее спасибо.
Редактировать: WebAPI.SetParameters. xml Параметры, объявленные в obj \ debug \ package
<?xml version="1.0" encoding="utf-8"?>
<parameters>
<setParameter name="IIS Web Application Name" value="Default Web Site/WebAPI_deploy" />
<setParameter name="IIS Web Application Pool Name" value="DefaultAppPool" />
<setParameter name="IisVirtualDirectoryPhysicalPath" value="c:\_Files\MyApplication\WebAPI_deploy" />
</parameters>
Редактировать: подробный журнал, я не думаю, что это добавляет много значения, но, возможно, это кому-то поможет кто имеет больше опыта работы с MSDeploy.
-------------------------------------------------------
Start executing msdeploy.exe
-------------------------------------------------------
"C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe" -source:package='c:\_Files\MyApplication\WebAPI\obj\Debug\Package\WebAPI.zip' -dest:auto,includeAcls="False" -verb:sync -enableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"c:\_Files\MyApplication\WebAPI\obj\Debug\Package\WebAPI.SetParameters.xml" -setParam:'IIS Web Application Name'='Default Web Site\WebAPI' -setParam:'IIS Web Application Pool Name'='MyAppPool' -verbose
Verbose: Performing synchronization pass #1.
Verbose: Parameter entry 'IIS Web Application Name/1' is applicable to 'appHostConfig/Default Web Site/WebAPI' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/2' is applicable to 'contentPath/c:\_Files\MyApplication\WebAPI\obj\Debug\Package\PackageTmp' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/3' could not be applied anywhere.
Verbose: Parameter entry 'IIS Web Application Name/1' is applicable to 'appHostConfig/Default Web Site/WebAPI' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/2' is applicable to 'contentPath/c:\_Files\MyApplication\WebAPI\obj\Debug\Package\PackageTmp' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/3' could not be applied anywhere.
Verbose: Parameter entry 'IIS Web Application Name/1' is applicable to 'appHostConfig/Default Web Site/WebAPI' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/2' is applicable to 'contentPath/c:\_Files\MyApplication\WebAPI\obj\Debug\Package\PackageTmp' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/3' could not be applied anywhere.
Verbose: No backup was executed.
Verbose: Parameter entry 'IIS Web Application Name/1' is applicable to 'appHostConfig/Default Web Site/WebAPI' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/2' is applicable to 'contentPath/c:\_Files\MyApplication\WebAPI\obj\Debug\Package\PackageTmp' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/3' could not be applied anywhere.
Info: Adding sitemanifest (sitemanifest).
Verbose: Parameter entry 'IIS Web Application Name/1' is applicable to 'appHostConfig/Default Web Site/WebAPI' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/2' is applicable to 'contentPath/c:\_Files\MyApplication\WebAPI\obj\Debug\Package\PackageTmp' because of its scope.
Verbose: Parameter entry 'IIS Web Application Name/3' could not be applied anywhere.
ERROR: Error: Using a 64-bit source and a 32-bit destination with provider appHostConfig is not supported.
ERROR: Error count: 1.