Dns.GetHostEntry に関して非常に具体的な問題があります。
サービスは Dns.GetHostEntry を使用して、ホストの名前を使用して、ホストのすべての IP アドレスを取得します。これは常にうまくいきました。特定の顧客で、特定のホストを照会すると、Dns.GetHostEntry は「そのようなホストは認識されていません」というエラーをスローします。この問題は、サービスがインストールされているマシンとは異なるドメインにあるホストを解決しようとした場合にのみ発生します。このサービスはかなり長い間機能していましたが、最近停止し、「そのようなホストは認識されていません」というエラーがスローされました (残念ながら、利用できるスタック トレースはありません)。ただし、Nslookup は機能しますが、問題はありません。問題のサービスは VB.NET で書かれており、.NET Framwork 2.0 をターゲットにしています。
.NET 3.0 の MSDN エントリのコメント ( http://msdn.microsoft.com/en-us/library/ms143998(v=VS.85).aspxは、.NET 3.0の逆引き DNS エントリに問題がある可能性があることを示しています。しかし、すべての逆引き参照ゾーンを削除しても、テスト ネットワークで問題を再現することはできませんでした (他の .NET バージョンについてはさらにコメントがあり、すべて同様の問題があります)。 PTR レコードは、テスト マシンで問題を発生させません。
[編集 2:] エラーが発生した唯一のことは、キャッシュのために前方解決がまだ機能していたにもかかわらず、ネットワーク アダプターを切断し、それによって DNS サーバーを使用できなくしたことでした。
だから、私の質問は次のとおりです。
- GetHostEntry がこの特定のエラーをスローするのはどのような状況ですか?
- どの解決方法を使用しますか? 私が間違っていなければ、管理されていない WinSock 関数 getnameinfo ( http://msdn.microsoft.com/en-us/library/ms738532(v=vs.85).aspx )を使用します。ドメイン ネーム システム (DNS)、ローカル ホスト ファイル、またはその他の命名メカニズムによる」.
- これが他のドメインのマシンで突然失敗する理由はありますか (同じドメインのマシンではありません)。
ありがとう、よろしく、 cun83