访问URL重启ASP.NET Core网站

环境

  • .NET Core 2.1

参考

步骤

具体的原理可见参考链接,总言之是通过IApplicationLifetime这个接口中的StopApplication()方法结束网站运行。

  1. IApplicationLifetime依赖注入
    private IApplicationLifetime applicationLifetime;
    
    public HomeController(IApplicationLifetime _applicationLifetime) {
        applicationLifetime = _applicationLifetime;
    }
  2. 定义一个Action,在其中调用StopApplication()方法,并返回一个空的Result
    [HttpGet("Shutdown")]
    public IActionResult Shutdown() {
        applicationLifetime.StopApplication();
        return new EmptyResult();
    }
  3. 开始调试,这里不选择IIS以方便查看效果
  4. 成功生成运行后会弹出控制台窗口,显示网站运行的一些信息
  5. 然后访问关闭网站Action的URL
  6. 访问后显示网站运行信息的控制台窗口会自动关闭,代表程序已经退出。
  7. 如果使用IIS代理网站,在网站自动关闭后再次访问URL(生成新的request),则网站会自动重启,达到访问URL来重启网站的效果。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据