0

私は現在、単純な WCF ベースの Web UI を既存のアプリケーションに追加しようとしています。これにより、Web ブラウザーを使用して同じ LAN 上の任意のデバイスを介して特定の側面をリモート制御できるようになります。(たとえば、WiFi経由で30フィート離れた電話またはタブレットから)これは、少なくとも同じマシンからはほとんど機能しますが、他のデバイスから接続しようとすると、タイムアウトになります.

WebHttpBinding binding = new WebHttpBinding();
binding.TransferMode = TransferMode.Streamed;

WebHttpBehavior behavior = new WebHttpBehavior();

WebServiceHost host = new WebServiceHost( typeof( Service ), new Uri( "http://localhost:8000/[REMOVED PRODUCT NAME]" ) );
host.AddServiceEndpoint( typeof( IService ), binding, "" ).Behaviors.Add( behavior );
host.Open();

これは、Windows 7 64 ビットでの C# からのセルフホスティングです。

ファイアウォールの例外とプログラムを netsh ACL に追加しました。

クライアント デバイスからホスト デバイスに ping を実行できます。

localhost ではなく LAN IP 経由で接続した場合でも、ホスト デバイスからアクセスできます。

コンソールに出力する Service クラスにパラメーターなしのコンストラクターとファイナライザーを追加したので、WCF によって構築されているかどうか、いつ構築されているかがわかります。これは、同じ LAN 上の別のデバイスからではなく、ローカルにアクセスした場合に発生します。これは、問題が私へのバインディングにあることを示唆しています。

ありがとうございました。

4

1 に答える 1

0

解決済み; 問題は、使用中のルーターがユーザーを互いにファイアウォールしているように見えることにあります。別のルーターまたはイーサネット ケーブルを使用すると機能します。

于 2013-07-11T15:22:17.233 に答える