今天日了gou了,一大早開啟VS2017的時候出現無法連線到Web伺服器“IIS Express”的錯誤,然後必應了一下,再谷歌了一下找到的解決方法也都千篇一律,奈何都沒能解決,最後透過靜下心來的思考,嘗試解決了問題,特此記錄一下,可能沒有第二個人會遇到跟我相同的問題了吧!先上問題截圖:
問題回顧
首先附上我的作業系統版本,
vs2017是15.9.9的版本
.net core 是2.2的版本
早上開啟vs2017嘗試除錯asp.net core應用程式的時候出現上述錯誤,然後我就嘗試使用 Powershell然後執行dotnet run
來執行,沒有抱任何錯誤,但是使用瀏覽器訪問的時候卻死活打不開網站。按理說沒錯誤,開啟網站應該沒問題啊~但是就是死活打不開,一直提示無法訪問。於是開啟了必應,以及谷歌之路的問題搜尋之路。
千篇一律的解決方案
只要你網上搜索,基本的解決方法都是一致的,可能網上的解決方法適用於大多數人,奈何不適用我的問題。我先把網上千篇一律的解決方案給大家羅列下:
-
升級下vs2017到最新的版本,排除可能因為vs版本BUG不一致導致的問題。
-
保證你配置的iis express執行的URL一致,如下圖所示:
-
關閉專案以及vs,然後把解決方案根目錄下麵的隱藏檔案 .vs 檔案夾給幹掉
-
重新以管理員身份執行vs2017並執行專案。
-
刪除Docement/IIS Express檔案夾裡面的全部內容。
-
解除安裝IIS Express重新安裝
-
解除安裝vs2017進行安裝(這個我沒試,當我傻嘛,這個太耗時間,耗不起)
我能跟你說我找到的大多數答案都是上面的內容嘛,更有甚者讓我重啟下電腦,我不會跟你說我重啟了快10次電腦了,問題也還是沒有解決。
最後沒法,按照如下設定使用iis進行除錯而不是藉助iis express。這個的確能除錯程式並能開啟網站了。如下所示設定:
但是太他嗎的不優雅了,而且如果你繼續用dotnet run
執行程式的話,控制檯輸出是沒有錯誤的,但是這時候你去訪問網站的話,依然打不開你的網站。怎麼辦呢?
奇葩的解決方法
怎麼辦呢?vs2017不能直接結合iis express除錯了,瞬間整個人都不好了,這時候我就開始回憶,我昨天對電腦做了什麼事情?
不就是對電腦進行了最佳化,把防火牆以及其他的幾個服務給關掉了嘛。那會不會是因為防火牆的原因導致的問題呢?
死馬當活馬醫吧,於是我把防火牆的服務給開啟了,然後,然後我就想罵街了,尼瑪,真的,真的好了,vs2017又能愉快的跟iis express一起除錯玩耍了。
這時候我就在想是不是巧合呢?於是我又把防火牆給關閉了,再次使用vs2017+iis express進行除錯,擦,問題重現了,
我再次開機啟動防火牆,然後重啟下電腦,這個錯誤又消失了。
你說奇葩不奇葩。
因此斷定這次我的電腦出現的上述錯誤情況的根本原因就是關閉了防火牆服務導致的,你說奇葩不奇葩。
另外需要註意的一點是,我的情況並不一定適用於所有人,可能你的問題只需要按照前面的那幾個方法就能解決了。沒有我的情況這麼奇葩。
最後
程式設計千萬條,本分第一條,最佳化不規範,奇葩問題現。謹以此篇文章獻給喜歡過度最佳化電腦的你。