我寫了一個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文件夾中多了好多文件夾,重新運行網站,哎呀 這個騷浪賤竟然好用了。
仔細看了看,應該是發布的時候把運行時包含在發布文件夾里了吧,這樣也許就不會有版本問題了吧。(不知道對不對,有大神看見的話請指教:))