ASP.NET Core 404錯誤(轉自其它網站)
阿新 • • 發佈:2018-11-28
使用IIS時我得到了404。我按照正確的程式釋出(這裡)和部署,詳見此處。
花了一些時間才弄明白,但我最終在Rick Strahl部落格文章中找到了答案。
基本上,在建立應用程式池時,以及將其設定為“No Managed Code”時,我還需要進入高階設定並將應用程式池標識設定為“網路服務”。它在我的機器上的ApplicationPoolIdentity下很好,但在我部署到的機器上卻沒有。
因此,為清楚起見,我的完整程式是:
要建立包:
- 建立dotnet核心網站(我使用Visual Studio 2017)
-
釋出。可以使用VS的釋出功能,但我通過包管理器使用了CLR。命令是:
dotnet釋出-c釋出-r win-x64 - 自包含
我不得不使用win-x64識別符號,因為我們必須與64位Windows Server 2008相容。
部署:
- 在C:\ inetpub \ wwwroot中建立一個資料夾(例如'testsite')
- 獲取釋出資料夾({root} \ bin \ Release \ netcoreapp2.1 \ win-x64 \ publish)的內容並將其複製到新的“testsite”資料夾(或等效資料夾)。
- 在主機上安裝dotnet核心執行時(不是SDK!)。
- 開啟IIS。右鍵單擊“應用程式池”,然後“新增應用程式池”。
- (我的機器不需要這一步,但伺服器確實這樣做了。)再次點選應用程式池。右鍵單擊新的應用程式池,然後選擇“高階設定”。將身份更改為“網路服務”(如上圖所示)。
- 返回頂級IIS,展開“預設網站”,右鍵單擊您網站的資料夾,然後選擇“轉換為應用程式”。選擇沒有託管程式碼的新應用程式池。
- 以管理員身份開啟命令提示符
iisreset
。您應該在安裝dotnet核心執行時之後第一次需要這個。 - 訪問該網站(例如http:// localhost / testsite)
轉自 https://stackoverflow.com/questions/38529123/asp-net-core-404-error-on-iis-10