【发布时间】:2019-12-03 16:54:52
【问题描述】:
我想让 App_Offline.htm 自定义和可更新我正在使用 MSDeploy 以便从 Azure Pipeline 和 Visual Studio 2019 发布。在两者中发布 Works 鳍。我的 Web 项目在 .Net Core 2.2 上
我的问题是我想使用 MSDeploy 使应用程序脱机,在发布前和删除 app_offline.htm 在发布后。目前,我启用MSDeployAppOffline,它显示默认的“维护中”秒。直到 App_offline.htm 上传到应用服务中。然后我用 Kudu 在线删除它。
后来我决定使用 MSDeploy CMDLine 远程添加和删除文件 app_offline.htm、beforePublish 和 AfterPublish ...这也有效,我必须在发布管道和 Visual Studio 中以纯文本格式保存我的密码,以各种方式“批处理脚本,PowerShell 脚本......”。
我的发布资料
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>mySiteUrl</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<ProjectGuid>GUID</ProjectGuid>
<MSDeployServiceURL>myapp.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>increditing-preview</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$myapp</UserName>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
<MSDeployUseChecksum>true</MSDeployUseChecksum>
<MSDeployPath Condition="'$(MSDeployPath)'==''">
$(Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\IISExtensions\MSDeploy\3@InstallPath)</MSDeployPath>
<MSDeployExe Condition=" '$(MSDeployExe)'=='' ">$(MSDeployPath)msdeploy.exe</MSDeployExe>
<DeleteCMD>
"$(MSDeployExe)" -verb:delete -dest:contentPath="$(DeployIisAppPath)/App_offline.htm",ComputerName="https://$(DeployIisAppPath).scm.azurewebsites.net/msdeploy.axd?site=$(DeployIisAppPath)",UserName="$(UserName)",Password="Password",IncludeAcls='False',AuthType='Basic'
</DeleteCMD>
</PropertyGroup>
<Target Name="CustomActionsAfterPublish" AfterTargets="AfterPublish">
<PropertyGroup>
</PropertyGroup>
<Message Text="Inside AfterPublish" Importance="high" />
<!-- MSDeploy does not work -->
<!--<MSDeploy Verb="delete"
Source="@(MsDeploySourceProviderSetting)"
Destination="contentPath=myapp/App_Offline.htm,computername=$(MsDeployServiceUrl)"
AllowUntrusted="$(AllowUntrustedCertificate)"
UseChecksum="$(MSDeployUseChecksum)"
UserAgent="$(_MSDeployUserAgent)"
ExePath="$(MSDeployPath)" />-->
<!-- Executing this command I have to use my Password in Pain Text -->
<Exec Command="$(DeleteCMD)" ></Exec>
</Target>
</Project>
【问题讨论】:
标签: .net-core azure-devops azure-web-app-service msdeploy azure-pipelines-release-pipeline