2

私はクライアント/サーバーJavascriptWindows8 Metroアプリケーションを開発しており、 MicrosoftのStreamSocketサンプルを使用してサーバーとクライアント間の通信を実現しました。実装がほぼ完了したので、同じアプリケーションを複数回実行することは不可能と思われるため、コンピューターでテストする方法がわかりません。この問題の回避策を知っていますか?

回避策の1つ(実際には解決策ではありません)は、アプリケーションをさまざまなプロジェクトに何度もコピーし、そのうちの1つをサーバーとして起動し、他のプロジェクトをクライアントとして起動することです。このアプローチを使用しても、クライアントをサーバーインスタンスに接続できませんでした。サーバーインスタンスが起動されていない場合、クライアントがサーバーに接続しようとした後、次のエラーメッセージが返されます。

「ターゲットマシンが積極的に拒否したため、接続できませんでした。」

ただし、サーバーインスタンスが起動して接続をリッスンすると、クライアントがサーバーへの接続を試みた後、しばらく待機してから、次のエラーメッセージが返されます。

「接続されたパーティが一定時間後に適切に応答しなかったために接続の試行が失敗したか、接続されたホストが応答しなかったために確立された接続が失敗しました。」

localhostクライアントをサーバーに接続するための使用はサポートされていないことを知っています。また、ネットワークに接続しているため、コンピューターのIPアドレスをクライアントのアドレスとして使用します。また、サーバーとクライアントの両方に次の機能を追加しました。

  • インターネット(クライアント)
  • インターネット(クライアントおよびサーバー)
  • プライベートネットワーク(クライアントとサーバー)
4

1 に答える 1

4

との接続を確立することを許可されていないWindowsStoreアプリの制限は、をlocalhost使用してデバッグ目的で回避できますCheckNetIsolation.exe。次のコマンドを呼び出すことで、ループバック分離から除外するアプリを追加できます。

CheckNetIsolation.exe LoopbackExempt –a –n=myapp_ecet6zh215f62e

ここで、最後の部分(myapp_ecet6zh215f62e)は、ファイルのタブにPackage family nameあるアプリの部分です。PackagingPackage.appxmanifest

すでに免除されているすべてのアプリを一覧表示することもできます。

CheckNetIsolation.exe LoopbackExempt –s

詳細についてCheckNetIsolation.exeは、こちらをご覧ください

ただし、Visual Studioから実行されるすべてのアプリケーションは、すでに免除されているはずです。2つのアプリインスタンスの接続を妨げるファイアウォールがあるかもしれません。念のため、一時的に無効にしてみてください。

少なくとも私が知っている限りでは、アプリケーションの複数のインスタンスを1台のマシンで実行する方法はありません。あなたの場合、おそらく私のコンピューターに仮想マシンをインストールし、そこから2番目のインスタンスを実行します。これはとにかく実際の環境のより良いシミュレーションであり、ループバック分離に対処する必要さえありません。

于 2012-12-30T08:19:21.303 に答える