2016-01-04 79 views
10

我正在使用筆記本電腦上的UWP應用程序。在以前安裝了預發佈Windows 10的筆記本電腦上,我能夠讓我的應用程序在本地主機上看到我的Web API服務,但在這檯筆記本電腦上,無論我嘗試什麼,我總是會使用HTTP客戶端獲取此錯誤:從UWP應用程序看不到本地主機

A connection with the server could not be established

var response = await client.GetAsync(BuildGetRequest()).AsTask(source.Token); 

如果我點到Azure上我發佈的服務,一切工作正常。 以下是我所嘗試的:

  • 允許的本地網絡環回在應用程序的項目屬性中設置。 確認我的應用程序包名稱在Fiddler的AppContainer回送豁免實用程序中被選中。
  • 將Internet(客戶端),互聯網(客戶端&服務器),在Package.AppManifest
  • 嘗試手動設置c專用網絡功能:通過命令行
  • UWP Enable local network loopback
  • > checknetisolation loopbackexempt -a -n =純粹絕望的行爲徹底禁用了防火牆。
  • 在完整IIS而不是IIS Express中運行我的Web API。

沒有什麼區別。

我注意到,我有在邊緣有類似的問題,儘管允許本地主機迴環在about:flags和其他一些建議,我發現在:

我的Web API項目運行在除Edge之外的每個瀏覽器中都很好,所以我猜測Edge是一個通用應用程序,問題是相關的。當我邊調試它,我得到這個錯誤:

Can’t connect to the proxy server

如果我去Settings並關閉手工代理服務器,再次運行它,我得到:

Hmm, we can’t reach this page

我注意到,儘管如此,對於某些原因手動代理服務器設置在後續運行過程中保持打開狀態。

任何人都可以建議其他任何我可以嘗試讓我的UWP應用程序在本地主機上查看我的服務嗎?

+0

我打了完全相同的問題,甚至包括Edge瀏覽器無法正常工作。 – grimus

回答

13

這不是一個稱爲網絡隔離的功能。它在Windows 8中引入(其中Metro應用程序稱爲Windows運行時應用程序)。

For security reasons, a UWP app that is installed in the standard manner is not allowed to make network calls to the device it is installed on.

更多細節herehere

此功能可以在Visual Studio中的調試設置,也對使用CheckNetIsolation的Windows工具,以使每個應用程序的環回訪問文章How to allow loopback for Windows Runtime apps會談被禁用:

CheckNetIsolation.exe LoopbackExempt -s 

CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-4125766819-3228448775-2449327860-2490758337-1264241865-3581724871-2122349299 

也有GUI工具,如Enable Loopback UtilityLoopback Exemption Manager使這個任務更容易:

Enable Loopback Utility

+1

問題是,即使所有那些你不能有一個UWP應用程序監聽套接字或StreamSocket接受來自同一臺機器 –

+0

@GeorgeBirbilis arrr廢話,吸連接。剛剛在這裏找到了一個文檔,確認了這一點「此外,Windows運行時應用程序可以將IP回送僅用作客戶端網絡請求的目標地址。」 https://msdn.microsoft.com/en-us/windows/hh780593.aspx – Geordie

+0

有趣的是,如果你使用的桌面橋把一個Win32應用程序在Windows應用商店,它可以做任何它希望有關網絡,如果我沒有錯 –

相關問題