IIS部署.netCore 程序踩過的坑


對於IIS部署NetCore 程序的教程,網上有很多,在這里就不贅述了。有需要的同學可以自行百度。。

今天要說的是部署之后的故事。

我們的開發環境集成了 Jenkins,部署在我們公司的一台實體服務器上,數據庫,redis,工作流服務,等一系列服務都放在一個服務器上(沒辦法,小項目)。

一直以來,在我們自己的服務器上,整個測試環境都還是挺穩定的,沒出現服務卡死,無法重啟等現象。

直到有那么一天,程序需要部署在客戶的測試機上了。經過一天的折騰,終於是把程序部署好了,網站也都順利的運行起來了。

然而噩夢才剛剛開始:

第一天程序運行還算平穩,除了個別配置問題造成的錯誤以外,並未發現其他問題。

故事(事故)是從第二天的下午開始的,一條來自客戶的微信,打破了我沉浸在Codeing For Bug 中的思緒。客戶反應網站無法登錄,報500錯誤。具體什么情況不太清楚。

截圖如下:

 

懵逼的我,本以為這是已經小事,重啟一下服務吧,但是!重啟服務居然還是不行,經過初步推斷是項目中有異步調用強制同步的地方,像下面這種,或者.result() 這種,

於是,一手改代碼,一手重啟客戶服務器。

 

 

 

 

 

改完代碼后,重新發包,部署。就當我以為這一切都會過去的時候,第二天,問題依然出現!

 

 

於是繼續,百度,Bing,360,Github。。。。(對,不FQ)

經過一番搜索,發現了一個跟我的描述很像的問題  https://github.com/dotnet/aspnetcore/issues/19555,於是乎。繼續修改,就像他描述的一樣:

remove BuildServiceProvider form startup 

 

 

 這是一個對文件監控,修改Redis 的監聽。最后改成這樣:

 

 

 另外還優化了整個項目中的日志引用:統一通過 ILogger 進行日志的操作。

於是乎,也不知能不能起到效果,就又部署了一版到現場。

結果你們也許想到了,是的,第二天問題又出現了。

一籌莫展啊。查看系統日志,發現服務依然是被shut Down 

 

 

 並且很怪異的是,w3wp.exe 這個進程無法殺死。並且無法重啟。

繼續檢查代碼。發現有一個異常未經處理,於是乎懷疑是他的問題,同時申請了客戶的正式機,同步部署。

這期間,懷疑過客戶測試機配置的問題,懷疑過虛擬機的問題。於是,把程序同步部署到了客戶正式機上。

終於,第二天,測試機照常服務卡死,但正式機並沒有。對比了兩個 站點發現:

測試機的站點部署在Default Web Site 上,並且,該站點前面還有一個問好,

 

 

百度說,這是一個多協議:IIS信息服務管理器的網站有個小問號顯示多個協議

 

最后,在不更換服務器的情況下,重新安裝了 dotnet-hosting-3.1.0-win,重新安裝了 IIS,並且刪除了 默認站點,新建站點進行部署。

 

可喜的是,程序終於可以正常運行了!

 

至此,僅以此博客做一下記錄!

 

 

 


免責聲明!

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



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