1

WCFプログラミングを始めたばかりです。ファイアウォールの背後にある仕事用のコンピューターに、自己ホスト型のテストWebサービスをセットアップしました。にありhttp://localhost:8000/MyTestServiceます。ブラウザからサービスページにアクセスできます。すべて正常に動作しています。

次に、別のネットワーク上にある自宅のコンピューターからそのサービスにアクセスしたいと思います。仕事用ルーターを指すようにダイナミックDNS(mydomain.dyndns.orgと呼びます)を設定しています。テストが完了しました。dyndnsは正しいアドレスを指しています。

これで、自宅のコンピューターにテストアプリをインストールして、Webサービスに接続しました。そこで、ポート8000​​で同じポート番号の仕事用コンピューターに転送要求するようにNATを構成しました。

自宅のコンピューターで、ブラウザーを開いてに移動しhttp://mydomain.dyndns.org:8000/MyTestServiceます。何もしていません。

明らかに、私はNATとポートフォワーディングについて本当に基本的な何かを見逃しています...しかし、私が言うように、私はプログラミングのこの側面でちょっと新しいです、そして私はここでいくつかのガイダンスを本当に感謝します!

4

2 に答える 2

4

エラーまたは空のページが表示されますか?ポートが実際に開いていることをファイアウォールの背後にあるコンピューターからcanyouseeme.orgで確認できますか?sysinternals tcpviewなどのツールを使用して、接続の試行がルーターだけでなくこのコンピューターに到達することを確認できますか?

于 2010-12-24T10:59:40.457 に答える
2

私も同じ問題を抱えていました。

このtoppicからの良い助けの後。http://www.codeproject.com/Questions/140317/WCF-services-and-Windows-Firewall。私のWCFサービスは、ファイアウォールがアクティブな場合でもローカルLANで正常に機能しました。

しかし、インターネット経由ではアクセスできませんでした。ポートフォワーディングの後、サービスの説明が表示されました。でも使えませんでした。

この記事http://gavinmckay.wordpress.com/2009/03/24/howto-fix-wcf-host-name-on-iis/は、私を正しい方向に向けています。サービスは表示されますが、WSDLが非公開のサーバー名を指しているため、Webサーバーへの接続は失敗し、クライアントはそこにアクセスできなくなります。

私の場合、セルフホストのローカルエンドポイントをパブリックエンドポイントに変更する必要があります。

        // 1 Create a URI to serve as the base address.
        Uri baseAddress = new Uri("http://publicdomain.com:8000/GettingStarted/");
        // Step 2 Create a ServiceHost instance
        ServiceHost selfHostRemote = new ServiceHost(typeof(MyService), baseAddress);
于 2013-02-22T15:08:55.783 に答える