代码之家  ›  专栏  ›  技术社区  ›  Iskandar Reza

在Visual Studio 2017中发布后如何发送一系列curl命令

  •  0
  • Iskandar Reza  · 技术社区  · 7 年前

    我正在开发一个ASP.NET MVC项目,我注意到当Web应用程序发布时,在点击控制器之前,IIS不会为视图构建缓存或任何内容。所以换句话说,如果一个访问者恰好是第一个在整个项目重新发布后访问该页面的人,那么它可能需要很长的时间来加载页面。

    为了解决这个问题,我必须手动点击项目中每个带有视图的端点一次。当项目第一次启动时,这是一个简单的任务,但正如您现在可以想象的,这是不可维护的。

    我的问题是,如何对项目中具有视图的端点执行一批curl命令?我不知道从哪里开始。是否有一种程序化的方法来创建批处理命令并将其附加到AfterPublish事件?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Alexandre St-Amant    7 年前

    您遇到的行为是由于IIS中的应用程序池启动模式造成的。与其实现AfterPublish事件,不如将应用程序池配置为执行您希望它执行的操作。

    启动模式

    一些Web应用程序需要大量的时间来启动。默认情况下,IIS仅在收到Web应用程序的第一个请求时启动工作进程。因此,对于需要较长时间初始化的Web应用程序,用户可能会看到响应缓慢。

    对于此类应用程序,最好在启动IIS后立即启动工作进程。应用程序池有一个StartMode设置,当设置为AlwaysRunning时,该设置将在启动IIS后立即启动应用程序池的工作进程。

    IIS 8在应用程序池设置用户界面中提供此设置。

    来源: https://blogs.msdn.microsoft.com/vijaysk/2012/10/09/iis-8-whats-new-application-pool-settings/

    如果您真的想在发布网站后运行这些操作,则必须了解有关Visual Studio生成过程的更多信息。此链接可以让您开始: https://docs.microsoft.com/en-ca/visualstudio/msbuild/how-to-extend-the-visual-studio-build-process?view=vs-2017