.net core 部署到 iis 步驟及報錯解決方法


我寫了一個Asp.net core mvc項目,但是部署在iis發生了502.5的問題一直解決不了。

環境

系統:最強Win10;

工具:輕巧VS Code;

各種百度bing都沒有我要的解決方案,說的都是

  1. 保證電腦上有.net core sdk或者.net core runtime;

  2. 需要安裝AspNetCoreModule托管模塊:DotNetCore.2.0.5-WindowsHosting.exe

  3. 上面的托管模塊安裝成之后需要重啟電腦,或者使用命令行。

net stop was /y
net start w3svc
  1. 發布項目,這是時候要注意權限。我發布的方式一直都是用dotnet cli 的dotnet publish命令,如果第一次發布會報權限不足的問題,然后我就會把publish文件夾的權限做一下處理。

  2. iis創建網站,然后把路徑綁定到publish文件夾。

  3. 編輯應用程序池,把.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文件夾中多了好多文件夾,重新運行網站,哎呀 這個騷浪賤竟然好用了。

仔細看了看,應該是發布的時候把運行時包含在發布文件夾里了吧,這樣也許就不會有版本問題了吧。(不知道對不對,有大神看見的話請指教:))


免責聲明!

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



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