.net core項目iis10上出現 HTTP 錯誤 500.19,錯誤代碼:0x8007000d


 

文件權限更改,配置文件更改,IIS重裝重啟,各種辦法都不管用,下面是解決辦法:

看錯誤信息里:模塊:IIS Web Core

打開IIS:

 

 

模塊列表中是否缺少紅框里的兩個組件(我這是已經安裝好的截圖),若缺少,則需要下載安裝NetCore運行組件:DotNetCore.X.X.X-WindowsHosting和.Net Core SDK

DotNetCore.X.X.X-WindowsHostingx下載地址:https://www.microsoft.com/net/download/windows

根據個人電腦的配置進行選擇,我的是64位操作系統,框架2.2,下載是下面這兩個:

.Net Core SDK下載地址:https://dotnet.microsoft.com/download/visual-studio-sdks?utm_source=getdotnetsdk&utm_medium=referral

 

 下載安裝完成后,重啟IIS,不是重啟項目,是在整個IIS上重啟,先停止,再啟動

重新瀏覽項目,完成

問題總結:

.Net Core 和 傳統的.Net 程序IIS部署主要注意以下幾點:

  • 安裝DotNetCore.X.X.X-WindowsHosting和.Net Core SDK
  • 應用池配置為無托管代碼(網上解釋:ASP.NET Core不再是由IIS工作進程(w3wp.exe)托管,而是使用自托管Web服務器(Kestrel)運行,IIS則是作為反向代理的角色轉發請求到Kestrel不同端口的ASP.NET Core程序中,隨后就將接收到的請求推送至中間件管道中去,處理完你的請求和相關業務邏輯之后再將HTTP響應數據重新回寫到IIS中,最終轉達到不同的客戶端(瀏覽器,APP,客戶端等)。而配置文件和過程都會由些許調整,中間最重要的角色便是AspNetCoreModule,它是其中一個的IIS模塊,請求進入到IIS之后便立即由它轉發,並迅速重定向到ASP.NET Core項目中,所以這時候我們無需設置應用程序池來托管我們的代碼,它只負責轉發請求而已)
  • 如果需要讀寫根目錄權限,要更改應用池 ApplicationPoolIdentity
  • 網站報錯,通過修改web.config 啟用錯誤日志查看詳細錯誤信息

官網配置鏈接:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/index?tabs=aspnetcore2x#common-errors

 

附解決方案參考文檔:https://www.cnblogs.com/donaldtdz/p/7802096.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM