WebClientクラスで"http://ホスト名/パス"というURLにアクセスする場合。
・WindowsXPのIE6で"http://ホスト名/パス"でアクセスできるが、Firefox3.6だと404が返ってくる。
・Windows7のIE8で"http://ホスト名/パス"でアクセスできるが、Firefox5だと404が返ってくる。
"http://IPアドレス/パス"であれば、どの場合もアクセスできる。
それからWindowsXP、Windows7ともに、エクスプローラで"\\ホスト名"で共有リソースにはアクセスできる。
それぞれの環境で"ping ホスト名"と"nbtstat -a ホスト名"は返ってくるが、"nslookup ホスト名"は返ってこない。
このような状況で、Windows7で"http://ホスト名/パス"に対してアクセスすると、
・Visual Studio 2010のデバックで実行しているときには、WebCilentクラスからアクセスできる
・サービス化した.NETのexeで実行しているときには、WebCilentクラスからアクセスすると404が返ってくる
こういうの勘弁してください(>_<)
共有名のパスも同様
Fileクラスでリモートのパスにアクセスする場合も同様の事象となった。
Windows7で"\\ホスト名\共有名"に対してアクセスすると、
・Visual Studio 2010のデバックで実行しているときには、Fileクラスからアクセスできる
・サービス化した.NETのexeで実行しているときには、Fileクラスからアクセスできない
\\IPアドレス\共有名"でアクセスすると、両方アクセスできる。
Microsoft TCP/IP のホスト名解決の順序
Microsoft TCP/IP のホスト名解決の順序
Windows NT/95/98 におけるNetBIOS名前解決シーケンス
ってあるけど、情報が古いな。
OSで動作が異なるのなら、そういう話ってことでいいけど、同じOS(XPと7)それぞれで、Visual Studio上とサービス上での動作が異なるのは、どう考えても名前解決のレイヤが違うんじゃないか?とか。