我寫了一個Asp.net core mvc項目,但是部署在iis發生了502.5的問題一直解決不了。 環境 系統:最強Win10; 工具:輕巧VS Code; 各種百度bing都沒有我要的解決方案,說的都是 1. 保證電腦上有.net core sdk或者.net core runtime; 2. ...
我寫了一個Asp.net core mvc項目,但是部署在iis發生了502.5的問題一直解決不了。
環境
系統:最強Win10;
工具:輕巧VS Code;
各種百度bing都沒有我要的解決方案,說的都是
保證電腦上有.net core sdk或者.net core runtime;
需要安裝AspNetCoreModule托管模塊:DotNetCore.2.0.5-WindowsHosting.exe
上面的托管模塊安裝成之後需要重啟電腦,或者使用命令行。
net stop was /y net start w3svc
發佈項目,這是時候要註意許可權。我發佈的方式一直都是用dotnet cli 的dotnet publish命令,如果第一次發佈會報許可權不足的問題,然後我就會把publish文件夾的許可權做一下處理。
iis創建網站,然後把路徑綁定到publish文件夾。
編輯應用程式池,把.net clr版本設置為無托管代碼。
搜到的結果基本上和這個都差不多,但是和我的情況都不一樣,哎呀我這個小脾氣。
重新創建了一個.net core mvc項目發佈,我靠!竟然能訪問,但是原來的項目還是不能訪問。
於是查看了一下windows日誌
- 用cortana打開事件查看器
- Windows日誌
- 應用程式
- 重新運行一下網站
嘿嘿~果然有幾個錯誤日誌,ErrorCode:0x80004005 : 8000808c
Bing了一下,大概意思是可能有版本問題(大概是因為我電腦里裝了好幾個.net core sdk或.net core runtime了吧)
重點!重點!重點!
就我這個English level竟然在stackoverflow上找到瞭解決方案。
在項目文件中添加一句話
<PropertyGroup>
<PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
然後publish文件夾中多了好多文件夾,重新運行網站,哎呀 這個騷浪賤竟然好用了。
仔細看了看,應該是發佈的時候把運行時包含在發佈文件夾里了吧,這樣也許就不會有版本問題了吧。(不知道對不對,有大神看見的話請指教:))