當發佈到解析爲IPv6地址的Intranet站點時,Visual Studio Web Deploy爲什麼會發生「在發送時發生意外錯誤」失敗?我假設IPv6與它有關,因爲將IPv4地址添加到主機文件可解決問題並且Web部署成功。IPv6爲什麼會干擾Web部署?
詳情:
- 最初從TeamCity的生成代理來生成錯誤,但嘗試發佈(或只是驗證在發佈配置的連接)從Visual Studio時,會發生同樣的問題。
- 到目標計算機的ping(成功)會解析爲與在目標機器上運行「ipconfig」時發現的地址相同的IPv6地址,除了尾端的不同Scope ID。
- Windows UNC共享目標機器的路徑工作正常
- 目標機器實際上是運行構建代理程序的VM的主機。
以下是驗證發佈配置文件中連接的錯誤。
而且從原來的構建細節/部署的嘗試。
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web \ Microsoft.Web.Publishing.targets(4276,5):Web部署任務失敗。 (無法完成對遠程代理程序URL'https://tapserver:8172/msdeploy.axd?site=MealPlannerCIAPI'的請求。) 此錯誤表示無法連接到服務器。確保服務URL正確,此計算機和服務器計算機上的防火牆和網絡設置配置正確,服務器上已啓動相應的服務。 錯誤詳細信息: 無法完成對遠程代理網址'https://tapserver:8172/msdeploy.axd?site=MealPlannerCIAPI'的請求。 底層連接已關閉:發送時發生意外錯誤。 無法從傳輸連接讀取數據:現有連接被遠程主機強制關閉。 一個現有的連接被強行遠程主機
再次,我已經修復了問題關閉,但它是一個非常令人困惑的修復給我。什麼會打破通過添加IPv4地址到hosts文件修復的msdeploy調用,當它明顯已經使用v6到達該主機時?
因爲不僅你的機器和服務器必須能夠使用ipv6,你和服務器之間的所有路由器也必須具備這一功能。如果沒有適當的服務在您和服務器之間進行v6-> v4-> v6橋接,則您的數據包將在某處丟失。例如從你的房子到城鎮邊緣可能有一條10車道的高速公路,另一條從服務器城鎮邊緣到前門的10條高速公路,但是你的城市被海洋和泥濘的山羊路徑隔開。 –
啊,即使沒有互聯網,這也適用?這絕對是在同一個局域網上,從虛擬機到它的主機[雖然是的,我相信它必須打到路由器,所以這可能就夠了]。當在該計算機上執行ping,共享路徑和訪問現有Web端點時,它會失敗,這真是令人驚訝。即使我將msdeploy端點粘貼到瀏覽器中,也可以看到端點* * –
,如果它全部是本地的,並且您不需要ipv6,只需嘗試關閉兩端的ipv6。 –