9

Self Host WebApi は初めてですが、その使いやすさと拡張性には非常に感銘を受けました。少なくともこのチュートリアルを通じて。これまでに行ったことはすべて、localhost、127.0.0.1、または LAN IP (192.168.0.x) を使用するかどうかにかかわらず、開発マシンで動作しますが、他のコンピューターからでもサービスにアクセスできない理由に困惑しています。同じサブネット内。

実行中のマシンでチュートリアルを実行した後、簡単に言うと:

localhost:3636/api/products/ 

予想される xml が返されます。LAN 上の別のマシンで以下を参照:

192.168.0.x:3636/api/products/ 

これがどのように相互作用するかを知っているかもしれない人のためのデータポイント:

1.) 私の開発マシン (192.168.0.x、サーバー、任意の名前のホスト) には IIS が搭載されています。私は非常に妄想的だったので、管理GUIを介して停止しました

2.) 次のコマンド ラインを実行して URL/ポートを予約しました。

    >netsh http add urlacl url=http://+:3636/ user=DOMAIN\USER listen=yes delegate=yes
    >netsh http add urlacl url=http://192.168.0.x:3636/ user=DOMAIN\USER listen=yes delegate=yes

2.b) これらの両方を一緒に、または個別に試しましたが、ユーザーを「全員」に変更しようとしましたが、役に立ちませんでした

3.) チュートリアルのコードを変更して、

    config.HostNameComparisonMode = HostNameComparisonMode.Exact //default is Strong Wildcard 

4.) LAN 上の他のマシンから 192.168.0.x への ping と tracert に成功しました

5.) 友人は、可能性としてファイアウォールを排除するために、TCPListener をセットアップし、それに telnet できることを確認することを勧めました。その論理が正しければ、ファイアウォールは問題ではありません

編集: ご協力いただきありがとうございます。これは、ファイアウォールの問題ではないことを確認する別のデータ ポイントです。私は以前、かなり鈍い(少なくとも私のような非認定者にとっては)ジュニパーファイアウォール/ルーターの背後にあるときに、この接続を投稿しました。その後、ホーム ネットワーク上の別のマシン (IIS なし) でチュートリアルをやり直しましたが、まだ LAN 内の他のコンピューターにサービスを公開できません。何か案は?

4

3 に答える 3

3

それはハードウェア ファイアウォールではなく、Windows ファイアウォールでした。ええ、私はそれに多くの時間を無駄にしました。Windowsファイアウォールをオフにすると(とにかくコードはイントラネットで実行されます)、すべてが機能しました。

ファイアウォールと Wireshark がどのように相互作用するかを説明している優れたサイトを知っている人はいます。または、それが最初のテストでなければならないと思います。

于 2013-06-13T02:22:01.010 に答える