Ale*_*akh 25 asp.net asp.net-mvc azure web-deployment microsoft-web-deploy
我有一个从我GIT到Azure App使用配置的自动部署Web Deploy.每次将新代码推送到repo时,都会启动build,然后将其部署到Azurewith Web Deploy.
问题是Web App(ASP.NET MVC)继续使用部署的代码提供请求,并且文件替换不会真正影响它.即使web.config已更改.基本上,我可以强制加载新应用程序的唯一方法是手动重启(或停止/启动).
这是我的publishig配置文件:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://app-name.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>app-name.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>app-name</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$app-name</UserName>
<Password>...</Password>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
msdn的相似主题没有答案
如果我错了请纠正我,但你还期望什么?如果应用程序正在“运行”,正在服务请求,则程序集将加载到内存中。如果更新它们,您应该重新加载应用程序以加载新的程序集。据我所知,没有办法从现有的 AppDomain 中删除程序集。因此,您最终需要创建一个新的应用程序(通过重新启动应用程序)。
app_offline.htm一种简单的解决方案是将文件与应用程序一起部署。如果 IIS 看到此文件,则停止响应新请求,系统中已有的请求将得到服务,然后应用程序将停止。app_offline.htm对于每个新请求,都会提供内容。完成部署后,使用 WebDeploy 运行一个简单的脚本,例如使用-postSync:runcommand=inmsdeploy并删除该app_offline.htm文件。新版本的应用程序将启动。
如果更新web.config文件,则应自动加载新配置。但这并不意味着应用程序将完全重新加载。
如果您在静态文件方面遇到此问题,那么可能是 HTTP 缓存的问题。文件已更新,但客户端(浏览器)从缓存加载它们。请参阅此问题了解更多详细信息。
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |