原本遷移一個項目到.net core就是一件體力活,要找各類替代包,還有一些函數/屬性的不支持web
總之很頭疼...windows
不要問我爲何用了.net core還要Host在IIS上,國內用.net的公司廣泛都是Windows Server,一時半會兒估計是轉換不過來了服務器
至於發佈嘛,vs2017上的操做和其餘版本的vs發佈同樣,發佈完後文件夾裏面文件從數量上就複雜多了函數
服務器環境:windows server 2008 r2spa
若是服務器沒有外網,還得準備一個C++ 的安裝包,官方的連接2015可再發行的版本404了.net
裝一個2010的應該也沒問題,目前沒試過行不行,自行下載嘗試代理
Microsoft Visual C++ 2010 Redistributable Package (x86)code
Microsoft Visual C++ 2010 Redistributable Package (x64)server
Host到IIS必備安裝程序:DotNetCore.1.0.4_1.1.1-WindowsHosting.exeblog
地址:https://go.microsoft.com/fwlink/?linkid=844461
這個安裝程序會自動安裝一個1.0.4和1.1.1的.net core的Runtime
還有一個IIS的ASP.NET Core Module,提供IIS和Kestrel Server間的反向代理
裝完以後呢,就跟之前發佈web同樣,建立應用程序池,拷貝文件到web目錄下什麼的
這裏應用程序池.NET CLR版本要改成 無託管代碼
改完後啓動應用程序池,而後瀏覽網頁
這裏正常狀況下會報個錯502.5
用微軟的東西,按照正常發佈流程走下來,而後正常的,本身都以爲不正常了
這個安裝的ASP.NET Core Module啓動的時候,運行了一個dotnet [你項目名字].dll的命令,若是這個命令運行正常,基本問題也不大了
因此我直接把cmd定位到web發佈目錄下,運行這個命令,這個應該是運行時版本問題
因此我直接在 https://www.microsoft.com/net/download/core#/runtime 下載了1.1.2版本的Runtime
而後重啓電腦或者運行如下兩個命令,按順序運行
net stop was /y
net start w3svc
注意生產環境第一個命令會致使IIS服務關閉,慎重!
最後附上一個微軟的官方說明地址
https://docs.microsoft.com/en-us/aspnet/core/publishing/iis
若是以上問題恰好也是您遇到的,能幫助到你,請幫忙推薦一下吧!