IIS进程启动,但ASP.NET核心不启动,除非我请求页面

j2datikz  于 2022-11-12  发布在  .NET
关注(0)|答案(1)|浏览(218)

我遇到了一个ASP.NET Core 3.1 Web应用程序问题。我需要此应用程序在崩溃或服务器重新启动时自动启动,而不等待下一个用户登录,以便启动。
为此,我将应用程序池启动模式设置为始终运行,将空闲超时设置为0,将常规时间间隔设置为0,并在网站上将预加载已启用设置为
这适用于我们拥有的所有服务器,但有一台服务器除外,asp.net如果我重新启动应用程序池或重新启动计算机,我可以看到w3wp进程启动,但www.example.com核心应用程序不会启动。我在事件查看器中没有看到任何错误。
导致此问题的原因是什么?如何进一步排除故障?

ru9i0ody

ru9i0ody1#

我在Windows 10和IIS版本10上遇到了同样的问题。此解决方案对我很有效:
在Windows 7或更高版本的桌面系统上,当在本地使用IIS时:导航到控制面板程序程序和功能打开或关闭Windows功能(屏幕左侧)。打开Internet信息服务万维网服务应用程序开发功能。选中应用程序初始化的复选框。
使用web.config,将doAppInitAfterRestart设置为true的元素添加到<system.webServer>应用程序的web.config文件中的元素中。

<system.webServer>
      <applicationInitialization doAppInitAfterRestart="true" />
 </system.webServer>

之后,您必须更改applicationHost.config的两个部分,更改C:\Windows\System32\inetsrv\config\applicationHost.config
第一节如下:

<site name="yoursitename" id="3" serverAutoStart="true">
    <application path="/" applicationPool="yoursitename" preloadEnabled="true" serviceAutoStartEnabled="true" serviceAutoStartProvider="ApplicationPreload">
        <virtualDirectory path="/" physicalPath="C:\websites\yoursitename" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:8011:" />
    </bindings>
</site>

第二节如下:

<add name="yoursitename" autoStart="true" startMode="AlwaysRunning">
    <processModel idleTimeout="00:00:00" />
       <recycling>
        <periodicRestart time="00:00:00" />
    </recycling>
</add>
  • PS:如果你想完全停止项目,你必须在应用程序池中停止。*

来源:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/advanced?view=aspnetcore-6.0#application-initialization-module

相关问题