以前はクライアントから正常に動作していた WCF サービスを実行しています。サービスをホストしている他のデバイスで Azure Compute Emulator を実行しています。これはローカル テストのみを目的としているため、次を使用してローカル ポートのポート リダイレクトを追加しました。
netsh interface portproxy add v4tov4 listenport=81 listenaddress=192.168.1.100 connectport=81 connectaddress=127.0.0.1
サーバーデバイスからサービス参照をインポートできるため、これは正常に機能します。ただし、アプリを実行し、サービス参照をnew ServiceReference1.ServiceClient()で初期化し、その最初のメソッドを呼び出そうとすると、EndpointNotFoundException が発生します。
特徴は次のとおりです。
- 192.168.1.100:81 へのローカル接続は機能し、そこで同じクライアント ソフトウェアを使用できます。
- 新しい WinForms (クライアントのターゲットは WinRT) プロジェクトを作成し、サービス参照を追加してメソッドを呼び出したところ、(リモート デバイスからも) 機能しました。
したがって、基本的には、サービス参照のこの 1 つのインスタンス (削除して追加しようとしましたが、サービス参照のインポートが機能しました!) だけが機能していません。デバッガーは、サービスへの最初のメソッド呼び出しで EndpointNotFoundException (例外には正しい IP とポート 192.168.1.100:81 が含まれています) をスローするだけなので、さらにデバッグするのは困難です。
メソッドを呼び出すコードはまったく同じです (つまり、new で初期化し、パラメータなしでクライアント メソッドを呼び出します)。これを引き起こす可能性のあるアイデアはありますか?