跳到主要內容

Windows 遠端連線錯誤 : 這部電腦無法連線到遠端電腦

錯誤的開始

寫程式寫到凌晨,在除錯的時候突然發現資料庫伺服器強制中斷我所有的連線,趕緊遠端看一下到底發生什麼事情,在最要緊的時候遠端連線出錯了,出現了"這部電腦無法連線到遠端電腦"的錯誤訊息,當場錯愕。


因為伺服器都架設在微軟的Azure雲端,沒有辦法連線簡直就是災難,於是趕緊尋找解決方法。

網路架構

小弟的網路架構其實還滿單純的,兩個Azure帳號分別兩台虛擬機,虛擬機裡面都是自行安裝設定後上傳到Azure的,所以基本上兩台是一樣的內容,除了出問題的這台有安裝SQL EXPRESS之外,幾乎配備一樣。

工作室這邊有兩台WINDOWS7 的PC,這兩台PC連線到 Azure 問題機器都會出錯,但連線沒安裝 SQL EXPRESS 的不會出錯,為了判斷出錯是在哪一端,商情借了別人正在運轉中的 Windows Server 2012 R2 的實體伺服器,先連線進R2伺服器後再連線到問題機器,沒想到竟然可以連線。

除錯之旅

為了找出問題,增加了一台新的虛擬機,並安裝了所有系統更新,這時候新虛擬機還可以用Window7 的PC遠端連線,當為新的虛擬安裝新的SQL以及後續的系統更新以後,重新開機以套用更新的時候,Window7 的PC遠端連線又失敗了。

小弟用Windows 7的PC連線到其他伺服器又是正常的,我感到非常奇怪,現在雖然WINDOWS 7 連線失敗,但是 剛剛的Server 2012 R2 卻可以連線,那 Windows 8 呢?

於是將Window 7重新安裝成Windows 8,在最乾淨的情況之下,去連線遠端電腦,結果一樣失敗了,因此幾乎可以排除是Windows 7 或 Windows 8 本身的問題,那麼就應該是網路與防火牆或者是遠端電腦問題。

接著檢查防火牆,通過防火牆,發現某個IP位置的連線數很高,高到嚇人,因為將該IP位置先拒絕其使用網路的資源,重新啟動網路路由後,發現竟然可以連線,太高興了,趕快去查那個IP是甚麼東西在使用這麼大量的網路連線。

殺掉兇手

 這IP原來是NAS,因為NAS上面開有BT下載,結果導致連線數太高,讓其他電腦無法順利連線遠端
從此之後BT這東西我再也沒用過了。









留言

這個網誌中的熱門文章

問題解決: 類型 'Expression<>' 定義在未參考的組件中。您必須加入組件 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的參考。

錯誤 CS0012 類型 'Expression<>' 定義在未參考的組件中。您必須加入組件 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的參考。 解決方法: 這是 Visual Studio 已知錯誤,解決方法 : 1. 將專案卸載 2. 在卸載的專案上面右鍵編輯 .csproj 3 . 找到 Reference  後添加這段進去 < Reference   Include ="System.Core">       < EmbedInteropTypes >False</ EmbedInteropTypes >       < Private >True</ Private >     </ Reference > 4. 儲存後重新載入專案即可

讓IIS自動安裝Let’s Encrypt 免費 SSL,並到期自動更新

由於GOOGLE引擎在2017年1月開始,會將沒有SSL的網站標示為不安全,並會優先收錄具有SSL的站台,因此為網站準備一個SSL證書勢在必行,但是一個SSL證書的價格並不是小網站站主所能負擔的,於是網路上就出現了一個叫做Let’s Encrypt 的認證機構,他們推出了一個免費的SSL認證計畫,頓時間SSL變成人人可低成本取得,只是這個免費SSL的有效期間很短,只有3個月。 可以參考 " SSL For Free 免費 SSL 憑證申請,使用 Let’s Encrypt 最簡單方法教學! "這篇文章的步驟進行申請,這裡只是申請並下載憑證,產生的憑證是 .crt ,IIS 只能使用 .pfx 憑證檔,沒有辦法直接使用在IIS上面,必須再經過轉換,你可以參考 " 使用 SSL For Free 產生 Let’s Encrypt SSL 憑證上傳給 IIS 站台使用 ",這篇文章將會教你如何將.crt轉成.pfx,然後在IIS中安裝憑證。 以上方法都是手動設定,說真的每次設定都要手動,一個兩個網站還好,要是有很多個網站,或是忘記更新也是很麻煩的,還好有大神寫好了一個能夠自動下載憑證、幫你安裝好憑證,再幫你紀錄好什麼時候該更新憑證,透過一些小手腳就能幫你自動化更新憑證,讓你安枕無憂的好程式。 首先你必須下載  https://github.com/Lone-Coder/letsencrypt-win-simple/releases/  最後發行版本。 下載後,解壓縮到任一目錄底下。 .config 是這個軟體的設定檔,大致上不需修改,預設設定都很合理,例如更新天數設定60天,其主要用意就是讓你有時間去反應,以免時間到期來不及反應。 有興趣修改設定的人可以 參考設定用法 。 letsencrypt.exe 就是這次的主角,你可以直接執行,會有互動式選項讓你直接選擇,並且幫你自動下載憑證、安裝憑證。 大致上的過程如下 1.執行程式,會先問你在SSL For Free所設定好的電子信箱位置,如果你還沒有設定好,請你參考文章開頭所介紹的網站,執行到可下載憑證並設定通知信箱為止。 2.接著問你要做哪些事情: 選N:建立一個新的憑證,如果你還沒有憑證。 3.然後問你是要為一個網站...

Visual Studio 問題處理-執行選取的程式碼產生器時發生錯誤:值-1在可接受的[0,2147483647]範圍之外

Visual Studio 問題處理 開啟之前完成的MVC專案後,要建立新控制器時,會出現這樣的錯誤 執行選取的程式碼產生器時發生錯誤:值 -1 在可接受的 [0,2147483647] 範圍之外 原本以為是安裝了什麼擴充套件,把所有套件移除後,情況依然沒有改善,於是重新安裝Visual Studio 也是一樣,而且奇怪的是,新開的MVC專案不會有這個問題,都是之前存檔的專案,於是我猜可能是我在專案裡面有加了那些套件所導致,因此我一個一個套件移除嘗試,終於找到幾個比較可疑的套件,當我把這些套件移除掉的時候,我就可以建立新的控制器了。 以下為移除套件的做法 1.打開WEB專案跟目錄底下的 packages.config 把這幾個套件註解掉,有就註解掉。 Microsoft.Extensions.DependencyInjection.Abstractions Microsoft.Extensions.Logging Microsoft.Extensions.Logging.Abstractions Microsoft.Extensions.Options Microsoft.Extensions.Primitives 因為你用NUGET管理器去移除很慢所以就用這個方式弄掉。 2.把WEB專案卸載 然後打開專案檔 一樣註解掉 再將專案重新載入,並將專案重新建置即可。 我目前處理這個問題的方式就是用這樣的方式,都可以解決這個問題,但是我不知道是基於什麼原理讓套件影響到檔案的建立。 以上就是我在這個問題的解決方式,如果您有更好的方法,歡迎你一起分享出來,在此先謝謝您了。