.NET Core Web Deploy to production会在发布时删除网站吗?

问题描述 投票:3回答:1

我有一个使用IISIntegration()的.NET Core网站:

 var contentRoot = Directory.GetCurrentDirectory();
 var host = new WebHostBuilder()
            .UseKestrel()
            .UseContentRoot(contentRoot)
            .UseSetting("detailedErrors", "true")
            .UseIISIntegration()
            .UseStartup<Startup>()
            .CaptureStartupErrors(true)
            .Build();

当我使用Web部署发布时,该网站发布很快,因为它现在不大,但是有一个2秒左右的时间段,如果您尝试在发布时访问生产网站(当它实际复制文件时)该网站已关闭,您将获得一个空白页面,标题为“正在建设中的网站”。

这与旧的EF 4.x不同,当您发布到已经运行的站点时,该站点只会旋转并尝试在发布时加载,但最终请求将在发布完成后进行并加载。

我似乎无法提及有关此特定问题的此问题或任何其他问题,没有其他人有此问题以及解决方法是什么?我们的团队经常在一天中间发布错误修复的快速迭代(我们是非常小的商店),但我们不能让网站每次停机几秒钟(或者如果网站变大,可能会更长)我们发布。

c# asp.net-mvc .net-core webdeploy
1个回答
1
投票

部署过程中,部署过程会将app_offline.htm文件放在该文件夹中。如果ASP.NET Core模块找到此文件,它将关闭您的应用程序,而是为所有请求返回此文件的内容。

参考文献: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.2#locked-deployment-files https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/aspnet-core-module?view=aspnetcore-2.2#app_offlinehtm

您可以通过在发布配置文件中设置<EnableMSDeployAppOffline>False</EnableMSDeployAppOffline>来禁用此行为,但我还没有测试这是否真的有效。

© www.soinside.com 2019 - 2024. All rights reserved.