WebDeploy 3.6 меняет физический путь приложения на конечном сервере
Я пытаюсь сохранить все веб-сайты с одного веб-сервера IIS и восстановить их на другом сервере. Я делаю это с помощью командлетов Powershell Backup-WDSite и restore-WDSite. Я сталкиваюсь с 2 проблемами:
Первая проблема заключается в том, что я не могу включить ACL при резервном копировании сайта. Если я напишу что-то вроде этого:$settings = @{encryptPassword='pwd'; includeAcls=$true}
Backup-WDSite -Site $site.Name -Output D:\test -SourceSettings $settings -IncludeAppPool -verbose
Это приводит к ошибке, утверждающей, что поставщик appHostConfig не поддерживает настройку IncludeAcls.
Кто-нибудь знает, как сохранить сайт и сохранить ACL?
Другая проблема заключается в том, что при восстановлении моего сайта путь к приложениям на конечном сервере не совпадает с путем на исходном сервере.
На исходном сервере путь веб-сайта - f:\clientroot\clientname\root, а в приложениях есть пути, например, f:\clientroot\clientname\app1. но когда я восстанавливаю веб-сайты на конечном сервере, путь к веб-сайту верен, но пути к приложениям, похоже, перепутаны и становятся f:\clientroot\clientname\root\app1 (поэтому добавляется дополнительная корневая папка в путь)
В XML, который генерируется из backup-wdsite (archive.xml), путь кажется правильным (см. Ниже):
<application path="/" MSDeploy.path="2" applicationPool="Custome10-111" enabledProtocols="http" MSDeploy.enabledProtocols="1" serviceAutoStartEnabled="false" MSDeploy.serviceAutoStartEnabled="1" serviceAutoStartProvider="" MSDeploy.serviceAutoStartProvider="1" preloadEnabled="true" MSDeploy.preloadEnabled="1" MSDeploy.MSDeployKeyAttributeName="path">
<virtualDirectoryDefaults path="" MSDeploy.path="1" physicalPath="" MSDeploy.physicalPath="9" userName="" MSDeploy.userName="1" password="" MSDeploy.password="1" logonMethod="ClearText" MSDeploy.logonMethod="1" allowSubDirConfig="true" MSDeploy.allowSubDirConfig="1" MSDeploy.MSDeployLinkName="virtualDirectoryDefaults" />
<virtualDirectory path="/" MSDeploy.path="2" physicalPath="F:\clientroot\Custome10-111\Root" MSDeploy.physicalPath="8" userName="" MSDeploy.userName="1" password="" MSDeploy.password="1" logonMethod="ClearText" MSDeploy.logonMethod="1" allowSubDirConfig="true" MSDeploy.allowSubDirConfig="1" MSDeploy.MSDeployKeyAttributeName="path" />
<appPoolConfig appPool="Custome10-111" MSDeploy.appPool="2" MSDeploy.MSDeployLinkName="Microsoft.Web.Deployment.AppPoolExtension" MSDeploy.MSDeployKeyAttributeName="appPool" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAE2PzU7DMBCEE2gsVbSHvkEeIFgxoYVLTuGGoDkgeujJaTatVcdr+aeoTw+2FAF7mB2NtPpmkzRJku8wccdZ3ATZv4mDQYuDo1/Q0R60xOsIyhX5JxgrUNVPlNGSlkXeeOm8gVqBd4bLIm99J8XhFa4feAZVV6wbquf1hvfV5hGqdRZJD3+AXQC8/AL+2dbgRfRgttoFoJ3FcnrK3vkIM83dKVPBWXLh0oNNU0JifXIbZMm1bhFlg2oQRxLPl423Dkdg5T1jbJ6FaE6CrLLp+RWZzN0P5TGJdBgBAAA=">
<add name="Custome10-111" MSDeploy.name="2" queueLength="1000" MSDeploy.queueLength="1" autoStart="true" MSDeploy.autoStart="1" enable32BitAppOnWin64="false" MSDeploy.enable32BitAppOnWin64="1" managedRuntimeVersion="v4.0" MSDeploy.managedRuntimeVersion="1" managedRuntimeLoader="webengine4.dll" MSDeploy.managedRuntimeLoader="1" enableConfigurationOverride="true" MSDeploy.enableConfigurationOverride="1" managedPipelineMode="Integrated" MSDeploy.managedPipelineMode="1" CLRConfigFile="" MSDeploy.CLRConfigFile="9" passAnonymousToken="true" MSDeploy.passAnonymousToken="1" startMode="OnDemand" MSDeploy.startMode="1" MSDeploy.MSDeployLinkName="PathElement" MSDeploy.MSDeployKeyAttributeName="name">
<processModel identityType="ApplicationPoolIdentity" MSDeploy.identityType="1" userName="" MSDeploy.userName="1" password="" MSDeploy.password="1" loadUserProfile="true" MSDeploy.loadUserProfile="1" setProfileEnvironment="true" MSDeploy.setProfileEnvironment="1" logonType="LogonBatch" MSDeploy.logonType="1" manualGroupMembership="false" MSDeploy.manualGroupMembership="1" idleTimeout="01:00:00" MSDeploy.idleTimeout="1" idleTimeoutAction="Terminate" MSDeploy.idleTimeoutAction="1" maxProcesses="1" MSDeploy.maxProcesses="1" shutdownTimeLimit="00:01:30" MSDeploy.shutdownTimeLimit="1" startupTimeLimit="00:01:30" MSDeploy.startupTimeLimit="1" pingingEnabled="true" MSDeploy.pingingEnabled="1" pingInterval="00:00:30" MSDeploy.pingInterval="1" pingResponseTime="00:01:30" MSDeploy.pingResponseTime="1" logEventOnProcessModel="IdleTimeout" MSDeploy.logEventOnProcessModel="1" MSDeploy.MSDeployLinkName="processModel" />
<recycling disallowOverlappingRotation="false" MSDeploy.disallowOverlappingRotation="1" disallowRotationOnConfigChange="false" MSDeploy.disallowRotationOnConfigChange="1" logEventOnRecycle="Time, Memory, PrivateMemory" MSDeploy.logEventOnRecycle="1" MSDeploy.MSDeployLinkName="recycling">
<periodicRestart memory="0" MSDeploy.memory="1" privateMemory="0" MSDeploy.privateMemory="1" requests="0" MSDeploy.requests="1" time="1.05:00:00" MSDeploy.time="1" MSDeploy.MSDeployLinkName="periodicRestart">
<schedule MSDeploy.MSDeployLinkName="schedule" />
</periodicRestart>
</recycling>
<failure loadBalancerCapabilities="HttpLevel" MSDeploy.loadBalancerCapabilities="1" orphanWorkerProcess="false" MSDeploy.orphanWorkerProcess="1" orphanActionExe="" MSDeploy.orphanActionExe="9" orphanActionParams="" MSDeploy.orphanActionParams="9" rapidFailProtection="true" MSDeploy.rapidFailProtection="1" rapidFailProtectionInterval="00:05:00" MSDeploy.rapidFailProtectionInterval="1" rapidFailProtectionMaxCrashes="5" MSDeploy.rapidFailProtectionMaxCrashes="1" autoShutdownExe="" MSDeploy.autoShutdownExe="9" autoShutdownParams="" MSDeploy.autoShutdownParams="9" MSDeploy.MSDeployLinkName="failure" />
<cpu limit="0" MSDeploy.limit="1" action="NoAction" MSDeploy.action="1" resetInterval="00:05:00" MSDeploy.resetInterval="1" smpAffinitized="false" MSDeploy.smpAffinitized="1" smpProcessorAffinityMask="4294967295" MSDeploy.smpProcessorAffinityMask="1" smpProcessorAffinityMask2="4294967295" MSDeploy.smpProcessorAffinityMask2="1" processorGroup="0" MSDeploy.processorGroup="1" numaNodeAssignment="MostAvailableMemory" MSDeploy.numaNodeAssignment="1" numaNodeAffinityMode="Soft" MSDeploy.numaNodeAffinityMode="1" MSDeploy.MSDeployLinkName="cpu" />
</add>
</appPoolConfig>
</application>
<application path="/FF" MSDeploy.path="2" applicationPool="Custome10-111" enabledProtocols="http" MSDeploy.enabledProtocols="1" serviceAutoStartEnabled="false" MSDeploy.serviceAutoStartEnabled="1" serviceAutoStartProvider="" MSDeploy.serviceAutoStartProvider="1" preloadEnabled="false" MSDeploy.MSDeployKeyAttributeName="path">
<virtualDirectoryDefaults path="" MSDeploy.path="1" physicalPath="" MSDeploy.physicalPath="9" userName="" MSDeploy.userName="1" password="" MSDeploy.password="1" logonMethod="ClearText" MSDeploy.logonMethod="1" allowSubDirConfig="true" MSDeploy.allowSubDirConfig="1" MSDeploy.MSDeployLinkName="virtualDirectoryDefaults" />
<virtualDirectory path="/" MSDeploy.path="2" physicalPath="F:\clientroot\Custome10-111\FF" MSDeploy.physicalPath="8" userName="" MSDeploy.userName="1" password="" MSDeploy.password="1" logonMethod="ClearText" MSDeploy.logonMethod="1" allowSubDirConfig="true" MSDeploy.allowSubDirConfig="1" MSDeploy.MSDeployKeyAttributeName="path" />
<appPoolConfig appPool="Custome10-111" MSDeploy.appPool="2" MSDeploy.MSDeployLinkName="Microsoft.Web.Deployment.AppPoolExtension" MSDeploy.MSDeployKeyAttributeName="appPool" MSDeploy.MSDeployProviderOptions="H4sIAAAAAAAEAE2PzU7DMBCEE2gsVbSHvkEeIFgxoYVLTuGGoDkgeujJaTatVcdr+aeoTw+2FAF7mB2NtPpmkzRJku8wccdZ3ATZv4mDQYuDo1/Q0R60xOsIyhX5JxgrUNVPlNGSlkXeeOm8gVqBd4bLIm99J8XhFa4feAZVV6wbquf1hvfV5hGqdRZJD3+AXQC8/AL+2dbgRfRgttoFoJ3FcnrK3vkIM83dKVPBWXLh0oNNU0JifXIbZMm1bhFlg2oQRxLPl423Dkdg5T1jbJ6FaE6CrLLp+RWZzN0P5TGJdBgBAAA=">
<add name="Custome10-111" MSDeploy.name="2" queueLength="1000" MSDeploy.queueLength="1" autoStart="true" MSDeploy.autoStart="1" enable32BitAppOnWin64="false" MSDeploy.enable32BitAppOnWin64="1" managedRuntimeVersion="v4.0" MSDeploy.managedRuntimeVersion="1" managedRuntimeLoader="webengine4.dll" MSDeploy.managedRuntimeLoader="1" enableConfigurationOverride="true" MSDeploy.enableConfigurationOverride="1" managedPipelineMode="Integrated" MSDeploy.managedPipelineMode="1" CLRConfigFile="" MSDeploy.CLRConfigFile="9" passAnonymousToken="true" MSDeploy.passAnonymousToken="1" startMode="OnDemand" MSDeploy.startMode="1" MSDeploy.MSDeployLinkName="PathElement" MSDeploy.MSDeployKeyAttributeName="name">
<processModel identityType="ApplicationPoolIdentity" MSDeploy.identityType="1" userName="" MSDeploy.userName="1" password="" MSDeploy.password="1" loadUserProfile="true" MSDeploy.loadUserProfile="1" setProfileEnvironment="true" MSDeploy.setProfileEnvironment="1" logonType="LogonBatch" MSDeploy.logonType="1" manualGroupMembership="false" MSDeploy.manualGroupMembership="1" idleTimeout="01:00:00" MSDeploy.idleTimeout="1" idleTimeoutAction="Terminate" MSDeploy.idleTimeoutAction="1" maxProcesses="1" MSDeploy.maxProcesses="1" shutdownTimeLimit="00:01:30" MSDeploy.shutdownTimeLimit="1" startupTimeLimit="00:01:30" MSDeploy.startupTimeLimit="1" pingingEnabled="true" MSDeploy.pingingEnabled="1" pingInterval="00:00:30" MSDeploy.pingInterval="1" pingResponseTime="00:01:30" MSDeploy.pingResponseTime="1" logEventOnProcessModel="IdleTimeout" MSDeploy.logEventOnProcessModel="1" MSDeploy.MSDeployLinkName="processModel" />
<recycling disallowOverlappingRotation="false" MSDeploy.disallowOverlappingRotation="1" disallowRotationOnConfigChange="false" MSDeploy.disallowRotationOnConfigChange="1" logEventOnRecycle="Time, Memory, PrivateMemory" MSDeploy.logEventOnRecycle="1" MSDeploy.MSDeployLinkName="recycling">
<periodicRestart memory="0" MSDeploy.memory="1" privateMemory="0" MSDeploy.privateMemory="1" requests="0" MSDeploy.requests="1" time="1.05:00:00" MSDeploy.time="1" MSDeploy.MSDeployLinkName="periodicRestart">
<schedule MSDeploy.MSDeployLinkName="schedule" />
</periodicRestart>
</recycling>
<failure loadBalancerCapabilities="HttpLevel" MSDeploy.loadBalancerCapabilities="1" orphanWorkerProcess="false" MSDeploy.orphanWorkerProcess="1" orphanActionExe="" MSDeploy.orphanActionExe="9" orphanActionParams="" MSDeploy.orphanActionParams="9" rapidFailProtection="true" MSDeploy.rapidFailProtection="1" rapidFailProtectionInterval="00:05:00" MSDeploy.rapidFailProtectionInterval="1" rapidFailProtectionMaxCrashes="5" MSDeploy.rapidFailProtectionMaxCrashes="1" autoShutdownExe="" MSDeploy.autoShutdownExe="9" autoShutdownParams="" MSDeploy.autoShutdownParams="9" MSDeploy.MSDeployLinkName="failure" />
<cpu limit="0" MSDeploy.limit="1" action="NoAction" MSDeploy.action="1" resetInterval="00:05:00" MSDeploy.resetInterval="1" smpAffinitized="false" MSDeploy.smpAffinitized="1" smpProcessorAffinityMask="4294967295" MSDeploy.smpProcessorAffinityMask="1" smpProcessorAffinityMask2="4294967295" MSDeploy.smpProcessorAffinityMask2="1" processorGroup="0" MSDeploy.processorGroup="1" numaNodeAssignment="MostAvailableMemory" MSDeploy.numaNodeAssignment="1" numaNodeAffinityMode="Soft" MSDeploy.numaNodeAffinityMode="1" MSDeploy.MSDeployLinkName="cpu" />
</add>
</appPoolConfig>
</application>
Это ошибка в MSDeploy, я делаю что-то не так или я что-то упускаю? Любая помощь по обоим вопросам будет принята с благодарностью. Благодарю.