天天看點

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

  1. 保證電腦上有.net core sdk或者.net core runtime;
  2. 需要安裝AspNetCoreModule托管子產品:DotNetCore.2.0.5-WindowsHosting.exe
  3. 上面的托管子產品安裝成之後需要重新開機電腦,或者使用指令行。
net stop was /y
net start w3svc
           
  • 釋出項目,這是時候要注意權限。我釋出的方式一直都是用dotnet cli 的dotnet publish指令,如果第一次釋出會報權限不足的問題,然後我就會把publish檔案夾的權限做一下處理。
  1. iis建立網站,然後把路徑綁定到publish檔案夾。
  2. 編輯應用程式池,把.net clr版本設定為無托管代碼。

重新建立了一個.net core mvc項目釋出,竟然能通路,但是原來的項目還是不能通路。

于是檢視了一下windows日志

  • 用cortana打開事件檢視器
  • Windows日志
  • 應用程式
  • 重新運作一下網站

有幾個錯誤日志,ErrorCode:0x80004005 : 8000808c

Bing了一下,大概意思是可能有版本問題(大概是因為我電腦裡裝了好幾個.net core sdk或.net core runtime了吧)

解決方案

在項目檔案中添加一句話

<PropertyGroup>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
</PropertyGroup>
           
  • 然後publish檔案夾中多了好多檔案夾,重新運作網站,好用了。
仔細看了看,應該是釋出的時候把運作時包含在釋出檔案夾裡了吧,這樣也許就不會有版本問題了吧。)