.NET Web リクエストが特定の CNAME に対して常に同じ IP にヒットするという問題があります。CNAME は複数の IP アドレスにバインドされており、これらの IP アドレスは、DNS ルックアップが発生するたびにランダムな順序で返されます (nslookup の実行によって確認されます)。
これをテストするための簡単なアプリを作成しました。
public void TestDNS()
{
while (true)
{
var ipAddress = Dns.GetHostAddresses("mywebsite.com").First().ToString();
Console.WriteLine(string.Format("Current: '{0}' at: '{1}'", ipAddress, DateTime.Now.ToLongTimeString()));
Thread.Sleep(1000);
}
}
このアプリを Server 2008 Datacenter、Server 2008 R2 Datacenter、Server 2012、Windows 7、および Windows 8 で実行しました。すべてのマシンで最新の更新プログラムと Service Pack が利用可能でした。
失敗する唯一のマシンは Server 2008 です。他のすべてのマシンは、約 1 分に 1 回 IP アドレスを切り替えます (TTL は 1 分です)。Server 2008 は切り替わることはありません (1 時間以上実行)。
明確にするために、マシンで nslookup やその他のツールを実行すると、DNS が期待どおりの結果を返していることが示されているようです。この問題は、Server 2008 上の .NET に固有のもののようです。
この関連する回答にリストされている項目を試しましたが、成功しませんでした。
何か案は?