トップ回答者
HttpListenerの競合を防ぐには

質問
回答
-
Tank2005 さん、
こんにちは!
フォーラム オペレーターの服部 清次です。
Tank2005 さんがこちらの質問を投稿されてからかなり時間が経ってしまいましたが、その後、状況はいかがでしょうか?
ちょっと気になりましたので、遅ればせながら、私の方で国内外の情報を探ってみましたところ、海の向こうの Q&A サイトに参考になりそうな情報が見つかりました。
http://stackoverflow.com/questions/443640/httplistener-start-accessdenied-error-on-vista
こちらのスレッドでは、質問者の方 (smvlad さん) が Tank2005 さんと同じエラー メッセージに遭遇されているのですが、その原因は、「ネットワーク カードに2つの IP アドレスが構成されていること」 となっています。
もし、Tank2005 さんの環境でも2つの IP アドレスが構成されているようでしたら、上記のスレッドで紹介されている、smvlad さんが見つけられた解決策が役に立つかもしれませんので、参考までに和訳して紹介させていただきますね。 (^^)
設定が違うとなると、当てはまる確率は低いのですが・・・
↓↓↓↓ ここから ↓↓↓↓
理由は分かりませんが、私のネットワーク カードに2つの IP アドレスが構成されていることが原因のようです。
(上記の私の質問のように) コードの中で1つの IP アドレスを指定した場合、
listener.Prefixes.Add("http://myip1:8080/app/");
例外を避けるためには、IP アドレスがバインドされた WeakWildcard と併せて登録する必要があります。
netsh http add urlacl url=http://myip1:8080/app user=domain\user
しかし、StrongWildcard (+ マーク) と併せてプレフィックスを追加し、
listener.Prefixes.Add("http://+:8080/app/");
同じワイルド カードで登録すると、
netsh http add urlacl url=http://+:8080/app user=domain\user
これにより、エラーは発生せず、両方の IP アドレスからアプリケーションにアクセスすることができます。
↑↑↑↑ ここまで ↑↑↑↑
こちらの情報が参考になることを願っています。
なお、StrongWildcard と WeakWildcard に関しましては、こちらで説明されていますので、併せてご確認ください。
それでは、また! (^_^)/
_____________________________________________
マイクロソフト株式会社 フォーラム オペレーター 服部 清次- 回答としてマーク sk7474 2009年5月29日 8:08
すべての返信
-
Tank2005 さん、
こんにちは!
フォーラム オペレーターの服部 清次です。
Tank2005 さんがこちらの質問を投稿されてからかなり時間が経ってしまいましたが、その後、状況はいかがでしょうか?
ちょっと気になりましたので、遅ればせながら、私の方で国内外の情報を探ってみましたところ、海の向こうの Q&A サイトに参考になりそうな情報が見つかりました。
http://stackoverflow.com/questions/443640/httplistener-start-accessdenied-error-on-vista
こちらのスレッドでは、質問者の方 (smvlad さん) が Tank2005 さんと同じエラー メッセージに遭遇されているのですが、その原因は、「ネットワーク カードに2つの IP アドレスが構成されていること」 となっています。
もし、Tank2005 さんの環境でも2つの IP アドレスが構成されているようでしたら、上記のスレッドで紹介されている、smvlad さんが見つけられた解決策が役に立つかもしれませんので、参考までに和訳して紹介させていただきますね。 (^^)
設定が違うとなると、当てはまる確率は低いのですが・・・
↓↓↓↓ ここから ↓↓↓↓
理由は分かりませんが、私のネットワーク カードに2つの IP アドレスが構成されていることが原因のようです。
(上記の私の質問のように) コードの中で1つの IP アドレスを指定した場合、
listener.Prefixes.Add("http://myip1:8080/app/");
例外を避けるためには、IP アドレスがバインドされた WeakWildcard と併せて登録する必要があります。
netsh http add urlacl url=http://myip1:8080/app user=domain\user
しかし、StrongWildcard (+ マーク) と併せてプレフィックスを追加し、
listener.Prefixes.Add("http://+:8080/app/");
同じワイルド カードで登録すると、
netsh http add urlacl url=http://+:8080/app user=domain\user
これにより、エラーは発生せず、両方の IP アドレスからアプリケーションにアクセスすることができます。
↑↑↑↑ ここまで ↑↑↑↑
こちらの情報が参考になることを願っています。
なお、StrongWildcard と WeakWildcard に関しましては、こちらで説明されていますので、併せてご確認ください。
それでは、また! (^_^)/
_____________________________________________
マイクロソフト株式会社 フォーラム オペレーター 服部 清次- 回答としてマーク sk7474 2009年5月29日 8:08