私は現在、単純な 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 上の別のデバイスからではなく、ローカルにアクセスした場合に発生します。これは、問題が私へのバインディングにあることを示唆しています。
ありがとうございました。