本來遷移一個項目到.net core就是一件體力活,要找各種替代包,還有一些函數/屬性的不支持
總之很頭疼...
不要問我為什么用了.net core還要Host在IIS上,國內用.net的公司普遍都是Windows Server,一時半會兒估計是轉換不過來了
至於發布嘛,vs2017上的操作和其他版本的vs發布一樣,發布完后文件夾里面文件從數量上就復雜多了
服務器環境:windows server 2008 r2
如果服務器沒有外網,還得准備一個C++ 的安裝包,官方的鏈接2015可再發行的版本404了
裝一個2010的應該也沒問題,目前沒試過行不行,自行下載嘗試
Microsoft Visual C++ 2010 Redistributable Package (x86)
Microsoft Visual C++ 2010 Redistributable Package (x64)
Host到IIS必備安裝程序:DotNetCore.1.0.4_1.1.1-WindowsHosting.exe
地址: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
如果以上問題剛好也是您遇到的,能幫助到你,請幫忙推薦一下吧!
