Windows 7 サーバーで Windows サービスとして実行されている WCF サービスと通信する必要がある Windows 8 ストア アプリの作業を開始しました。バインディングは net.tcp で、セキュリティはありません (まだ)。また、Package.appxmanifest ファイルに移動し、メイン アプリケーション プロジェクトと単体テスト プロジェクトの両方で "インターネット (クライアント)" と "プライベート ネットワーク (クライアントとサーバー)" を確認しました。これは単体テスト プロジェクトでは正常に機能します。Windows 7 マシンで実行されている WCF サービスと通信できますが、Windows 8 アプリ自体でサービスにアクセスできません。アプリケーションは、Web サービス プロキシへの呼び出しでハングするだけです。権限/マニフェスト機能を備えた単純なものが欠けているだけですか?
編集:私は実際にそれを機能させました。私のサービス インターフェイスは aTask<IList<MyDataObj>>
を返し、実装は非同期でした (async
メソッド実装でキーワードを使用しました)。単体テストで実行すると、返された Task でを呼び出しGetItems()
、次にを呼び出します。Wait()
これをアプリにコピーしても機能しません。アプリ内のコードを変更し、await
代わりにタスク呼び出しを編集すると、呼び出しは WCF サービスに対して行われました。この時点での私の質問は、2 つの環境の違いと、通話がハングする原因は何ですか?