起因:
前一階段運(yùn)行的好好的.NET CORE 網(wǎng)站(.NET CORE 2.0.6)
突然一次編譯部署后不能運(yùn)行了蒂胞,網(wǎng)頁報(bào) http error 502.5
過程:
頁面上建議我查看日志。
我感覺是不是這次編譯帶了什么新的庫黄琼,而服務(wù)器上老的RUMTIME 庫沒有剪返?
所以先到微軟官網(wǎng)下載了.NET CORE HOSTING BUNDLE 2.1.0 安裝梧兼。
安裝好發(fā)現(xiàn)任然報(bào)錯(cuò)喳瓣。
于是打開WINDOWS日志欣福,查看錯(cuò)誤。發(fā)現(xiàn)IIS 報(bào).NET CORE 啟動網(wǎng)站.DLL 失敗语泽。
于是手動從CMD里 運(yùn)行 “DOTNET 網(wǎng)站.DLL”
然后報(bào)錯(cuò)贸典,終于找到原因了,本地 NET CORE RUNTIME缺少清單里的某個(gè)庫(微軟的一個(gè)INSIGHT什么庫踱卵。)
由于這個(gè)項(xiàng)目2個(gè)人做的廊驼,可能是別人(或者是我不小心)引用了。網(wǎng)上搜索下這個(gè)庫惋砂,發(fā)現(xiàn)這個(gè)庫是用于AZURE部署用的妒挎。對于我沒用,所以打算刪了西饵,所以在VS全局搜索饥漫。結(jié)果沒搜到,想了想罗标,干脆在服務(wù)器RUMTIME里安裝上這個(gè)庫吧。不過在搜索這個(gè)庫的時(shí)候积蜻,發(fā)現(xiàn)了另一個(gè)辦法闯割。因?yàn)槲议_發(fā)調(diào)試的時(shí)候是能夠運(yùn)行的,所以開發(fā)環(huán)境有這個(gè)庫竿拆。所以理論上宙拉,我只要在打包發(fā)布的時(shí)候,帶上這個(gè)庫不就可以了(因?yàn)榉?wù)器會變丙笋,所以在服務(wù)器上安裝比較煩谢澈,重新部署的時(shí)候還要記得安裝這個(gè)東西)。
最終解決方法:
用編輯器御板,打開項(xiàng)目.csproj锥忿。
在PropertyGroup節(jié)點(diǎn)下添加PublishWithAspNetCoreTargetManifest子節(jié)點(diǎn),值為false.
在打包發(fā)布下怠肋,就會發(fā)現(xiàn)對了好多庫文件敬鬓。復(fù)制到服務(wù)器IIS目錄后,網(wǎng)頁就能正常顯示了。