Asp.net-Core

.NET Core 3 - IIS - 應用程序初始化不起作用

  • February 1, 2021

為了使用 .NET Core MVC 框架執行後台任務,我一直在關注IHostedService文件。

我希望該服務在 IIS 中自動啟動,但是它不起作用。

我做了以下事情:

  • 在 Windows 伺服器上安裝應用程序初始化功能
  • 在網站上將“預載入”設置為 true
  • 在 AppPool 上,設置“AlwaysRunning”
  • 在 AppPool 上,將“空閒超時”設置為 0
  • 在 AppPool 上,確保它在“無託管程式碼”下執行
  • 在 ApplicationInitialization 配置中,設置以下標誌:
  • doAppInitAfterRestart = True
  • skipManagedModules = False
  • 添加了一個initializationPage鍵,=“/start”(一個空白的MVC呼叫只是為了啟動應用程序)

奇怪的是,這些步驟適用於全新的 Windows Server 安裝,但不適用於我要使用的伺服器。

在有問題的伺服器上,我可以看到 w3wp 程序嘗試啟動 dotnet 程序(通過 Procmon),但在我從瀏覽器發送真正的 HTTP 請求之前,它實際上並沒有執行任何 dotnet 核心程式碼。

我已經閱讀了許多 GitHub 執行緒,這些執行緒說無論確切的 IIS 版本如何,這都應該可以工作 - 還有什麼可能發生的?

要在網站上將“預載入”設置為 true,您還需要在網站上啟動匿名身份驗證

對於將來訪問此頁面的任何人。我剛剛完成了這項工作,我最終發現,無論你想點擊什麼端點來“預載入”你的應用程序,都必須是匿名的。一旦我這樣做了,我的工作就開始成功了。

引用自:https://stackoverflow.com/questions/59905391