如何在 IIS10 中正确自动启动 asp.net 应用程序
How to properly autostart an asp.net application in IIS10
我正在尝试让我的 ASP.NET 应用程序在应用程序池为 运行 时自动启动。
根据网上大量的参考资料,我已经完成了以下工作:
- 将应用程序池设置为
StartMode=AlwaysRunning
- 将相关站点(属于上述池)设置为
preloadEnabled=true
- 将
Application Initialization
功能安装到 Windows 安装
- 将
<applicationInitialization>
节点添加到 web.config 的 <system.webServer>
节点
该 Web 应用程序基于 Owin,其 Startup.Configuration()
方法中有一个简单的 log4net 日志记录语句。现在,当重新启动 IIS 时,我看到 w3svc.exe 进程是 运行,所以我知道 StartMode=AlwaysRunning
正在运行。但是日志文件中没有日志消息。
导航到应用程序中的任何 url(即使是不存在的)将启动应用程序并添加日志行。
由于应用程序启动时的实际工作,我非常希望应用程序真正预加载,但我似乎无法完成。
不幸的是,我在搜索此站点时未能找到解决方案。
提前致谢。
为了后代回答我自己的问题,看来我是在正确的轨道上。要让应用程序在 IIS10 中启动(我假设在 IIS 8 中也是如此),您只需要执行以下三个步骤:
- 将应用程序池设置为
StartMode=AlwaysRunning
以确保应用程序池的 w3svc.exe 进程始终 运行。
- 将相关站点(属于上述池)设置为
preloadEnabled=true
- 按照 here 的说明将
Application Initialization
功能安装到 Windows 安装中。
需要注意的一件重要事情是,如果 Application Initialization
任务之前未安装在计算机上,您 必须重新启动计算机 。这是我上次错过的,导致我浪费了很多时间寻找其他东西:(
无论如何,设置这三件事将导致应用程序真正完成初始化,如果您想设置一些计划任务(ea 使用 Quartz NuGet 包),这将特别有用。
顺便请注意,如果您像上面那样设置自动初始化,应用程序也会在关闭超时到期后和应用程序池回收时自动启动。
我正在尝试让我的 ASP.NET 应用程序在应用程序池为 运行 时自动启动。
根据网上大量的参考资料,我已经完成了以下工作:
- 将应用程序池设置为
StartMode=AlwaysRunning
- 将相关站点(属于上述池)设置为
preloadEnabled=true
- 将
Application Initialization
功能安装到 Windows 安装 - 将
<applicationInitialization>
节点添加到 web.config 的<system.webServer>
节点
该 Web 应用程序基于 Owin,其 Startup.Configuration()
方法中有一个简单的 log4net 日志记录语句。现在,当重新启动 IIS 时,我看到 w3svc.exe 进程是 运行,所以我知道 StartMode=AlwaysRunning
正在运行。但是日志文件中没有日志消息。
导航到应用程序中的任何 url(即使是不存在的)将启动应用程序并添加日志行。
由于应用程序启动时的实际工作,我非常希望应用程序真正预加载,但我似乎无法完成。
不幸的是,我在搜索此站点时未能找到解决方案。
提前致谢。
为了后代回答我自己的问题,看来我是在正确的轨道上。要让应用程序在 IIS10 中启动(我假设在 IIS 8 中也是如此),您只需要执行以下三个步骤:
- 将应用程序池设置为
StartMode=AlwaysRunning
以确保应用程序池的 w3svc.exe 进程始终 运行。 - 将相关站点(属于上述池)设置为
preloadEnabled=true
- 按照 here 的说明将
Application Initialization
功能安装到 Windows 安装中。
需要注意的一件重要事情是,如果 Application Initialization
任务之前未安装在计算机上,您 必须重新启动计算机 。这是我上次错过的,导致我浪费了很多时间寻找其他东西:(
无论如何,设置这三件事将导致应用程序真正完成初始化,如果您想设置一些计划任务(ea 使用 Quartz NuGet 包),这将特别有用。
顺便请注意,如果您像上面那样设置自动初始化,应用程序也会在关闭超时到期后和应用程序池回收时自动启动。