【问题标题】:.NET Core Web Deploy to production takes down site while publishing?.NET Core Web Deploy to production 在发布时关闭站点?
【发布时间】:2019-04-19 19:29:24
【问题描述】:

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

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

当我使用 web deploy 发布时,该站点发布速度很快,因为它现在并不大,但是如果您尝试在发布时访问该站点(当它实际复制文件)该站点已关闭,并且您会看到一个空白的白色页面,其标题为“正在建设中的站点”。

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

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

【问题讨论】:

标签: c# asp.net-mvc .net-core webdeploy


【解决方案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

您可以通过在发布配置文件中设置 &lt;EnableMSDeployAppOffline&gt;False&lt;/EnableMSDeployAppOffline&gt; 来禁用此行为,但我尚未测试这是否真的有效。

【讨论】:

    猜你喜欢
    • 2011-06-20
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-05
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多