web-dev-qa-db-ja.com

UWPアプリからlocalhostが表示されない

ラップトップでUWPアプリに取り組んでいます。プレリリース版のWindows 10を搭載した以前のラップトップでは、ローカルホストでアプリに私のWeb APIサービスを表示させることができましたが、このラップトップでは、何をしようとしても、常にHTTPクライアントを使用してこのエラーが発生します。

サーバーとの接続を確立できませんでした

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

Azureで公開したサービスをポイントすると、すべてが正常に機能します。これが私が試したものです:

  • 許可されたローカルネットワークループバックは、アプリのプロジェクトプロパティで設定されます。 FiddlerのAppContainer Loopback Exemption Utilityでアプリパッケージ名がチェックされていることを確認しました。
  • Package.AppManifestでインターネット(クライアント)、インターネット(クライアントとサーバー)、プライベートネットワーク機能を設定する
  • コマンドラインから手動でc:> checknetisolation loopbackexempt -a -n =を設定しようとしました
  • WPローカルネットワークループバックを有効にする
  • 純粋な絶望の行為でファイアウォールを完全に無効にしました。
  • IIS Expressではなく、完全にIISでWeb APIを実行します。

何も違いはありません。

about:flagsでLocalhostループバックを許可しているにもかかわらず、Edgeで同様の問題が発生していることに気付きました。

私のWeb APIプロジェクトはEdgeを除くすべてのブラウザーで正常に動作するので、Edgeはユニバーサルアプリであるため、問題はリンクされていると思います。 Edgeでデバッグすると、次のエラーが発生します。

プロキシサーバーに接続できません

Settingsに移動して手動プロキシサーバーのスイッチをオフにした場合、もう一度実行すると、次のようになります。

このページにアクセスできません

しかし、何らかの理由で、手動プロキシサーバーの設定が後続の実行中に再びオンになっていることに気づきました。

UWPアプリにlocalhost上のサービスを表示させるために他に提案できることはありますか?

18
Russty

これはバグではなく、ネットワーク分離と呼ばれる機能です。これはWindows 8で導入されました(MetroアプリはWindowsランタイムアプリと呼ばれていました)。

セキュリティ上の理由から、標準的な方法でインストールされたUWPアプリは、インストールされているデバイスへのネットワーク呼び出しを行うことができません。

詳細 ここ および ここ

この機能はVisual Studioのデバッグ設定で無効にできます。また、記事 Windowsランタイムアプリのループバックを許可する方法 は、CheckNetIsolation Windowsツールを使用して有効にする方法について説明していますアプリケーションごとのループバックアクセス:

CheckNetIsolation.exe LoopbackExempt -s

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

Enable Loopback UtilityLoopback Exemption Manager などのGUIツールもこのタスクを作成しますより簡単に:

Enable Loopback Utility

22
rustyx