gpt4 book ai didi

c# - 如何预热 IIS 中托管的 asp.net 核心应用程序 (a) 网站重启和 (b) 重新部署?

转载 作者:行者123 更新时间:2023-12-04 12:40:51 25 4
gpt4 key购买 nike

我在 IIS 中托管一个 asp.net core 2.0 应用程序。只有当至少一个网络请求被发送到网站时,该应用程序才会启动。但是,我需要应用程序在 (a) 在 IIS 中重新启动和 (b) 在 redployment(发布到文件夹)时启动。 “开始”是指构造了 Startup 类并调用了它的 ConfigureServices(...) 和 Configure(...) 方法,因为我已经配置了一些需要在 Web 主机启动后立即实例化,而不是在第一个 Web 请求进入时立即实例化。

这是我的应用程序的入口点:

public class Program
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.File("log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 10485760, retainedFileCountLimit: 10) // 10485760 Bytes = 10Megabytes
.CreateLogger();

try
{
Log.Information("Starting web host");
BuildWebHost(args).Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
}

}

public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
}

最佳答案

有很多选项可以自动将 HTTP 请求发送到您的 Web 应用程序。

  • Uptimerobot是众多免费的第三方服务之一,它们会定期向您的 Web 应用程序发送请求。
  • 创建并托管您自己的 Windows 服务(假设您倾向于使用 Microsoft 解决方案),以您希望的任何频率访问您的网络服务。
  • 使用 timer trigger 创建一个 Azure 函数(或 AWS Lambda)以您希望的任何频率访问您的网络服务。
  • 使用 Azure DevOps 等工具设置发布其中包括向您的 Web 应用程序发送请求的发布后任务。
  • 安装和配置 IIS Application Initialization Module执行热身任务。

关于c# - 如何预热 IIS 中托管的 asp.net 核心应用程序 (a) 网站重启和 (b) 重新部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59183755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com