.net core 在Azure应用程序服务和Visual Studio中实现应用程序脱机自动化
我想让App_Offline.htm成为定制的和可更新的,我正在使用MSDeploy,以便从Azure Pipeline和Visual Studio 2019发布。以两种方式发布作品。我的Web项目在.NETCore2.2上 我的问题是,我想使用MSDeploy在发布前将应用程序脱机,并在发布后删除App_Offline.htm。目前,我启用了DeployAppOffline,它显示默认的“正在维护”数秒。直到App_offline.htm上载到应用程序服务中。然后我用Kudu在线删除它 后来我决定使用MSDeploy CMDLine远程添加和删除文件app_offline.htm、发布前和发布后。。。Wich也可以工作,我必须在发布管道和Visual Studio中以纯文本的形式保存密码,所有方式都是“批处理脚本,PowerShell脚本…” 我的发布配置文件.net core 在Azure应用程序服务和Visual Studio中实现应用程序脱机自动化,.net-core,azure-devops,azure-web-app-service,msdeploy,azure-pipelines-release-pipeline,.net Core,Azure Devops,Azure Web App Service,Msdeploy,Azure Pipelines Release Pipeline,我想让App_Offline.htm成为定制的和可更新的,我正在使用MSDeploy,以便从Azure Pipeline和Visual Studio 2019发布。以两种方式发布作品。我的Web项目在.NETCore2.2上 我的问题是,我想使用MSDeploy在发布前将应用程序脱机,并在发布后删除App_Offline.htm。目前,我启用了DeployAppOffline,它显示默认的“正在维护”数秒。直到App_offline.htm上载到应用程序服务中。然后我用Kudu在线删除它 后来我
<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>
MSDeploy
Azure网站
释放
任何CPU
mySiteUrl
真的
假的
指南
myapp.scm.azurewebsites.net:443
递增预览
真的
WMSVC
真的
$myapp
真的
Azure网站
真的
真的
$(注册表:HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\IISExtensions\MSDeploy\3@InstallPath)
$(MSDeployPath)msdeploy.exe
“$(MSDeployExe)”-动词:delete-dest:contentPath=“$(deployiisppath)/App_offline.htm”,ComputerName=“https://$(deployiisppath).scm.azurewebsites.net/msdeploy.axd?site=$(deployiisppath)”,UserName=“$(UserName)”,Password=“Password”,IncludeAcls='False',AuthType='Basic'
为了避免库杜问题,我所要做的就是:
在my Azure应用程序服务中添加应用程序设置
并将 <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
<EnableMSDeployAppOffline>true</EnableMSDeployAppOffline>
<MSDeployUseChecksum>true</MSDeployUseChecksum>
</Project>
MSDeploy
Azure网站
释放
任何CPU
mySiteUrl
真的
假的
指南
myapp.scm.azurewebsites.net:443
递增预览
真的
WMSVC
真的
$myapp
真的
Azure网站
///启用部署AppOffline
真的
真的
并选中Azure发布管道中的使应用离线:部署Azure应用服务任务
感谢您在此处分享您的解决方案,您可以接受它作为答案,这样它可以帮助其他遇到相同问题的社区成员。祝您愉快。我想如果我想在azure应用服务部署之前执行其他部署步骤,我必须手动创建app_offline.htm?(如数据库更新)