看起来这个话题已经有很多问题,但我相信我的可能会有所不同。我的设置:
直到大约一周前,它们一直存在,直到我尝试升级到Azure缓存2.1。一旦我这样做,我就受到了“没有这样的主机已知”问题的困扰,似乎已经影响了许多开发人员。我发现许多问题和网站指示我将Azure SDK安装升级到新的2.1版本。我做了所有这些事情:
我仍然收到以下信息(我的错误):
Exception type: SocketException
Exception message: No such host is known
at System.Net.Dns.HostResolutionEndHelper(IAsyncResult asyncResult)
这与大多数其他问题和网站显示的更典型的错误不同,这是(更常见的报告错误,而不是我的):
No such host is known
Exception message: No such host is known
at Microsoft.ApplicationServer.Caching.AsyncResultNoResult.EndInvoke()
我对此进行故障排除大约需要30个小时,并且可以真正使用一些帮助。也许我只是错过了关于升级SDK的一些步骤?不知何故可能偷偷摸摸它还在使用旧版本的DLL?除了查看项目中每个引用的路径(我已经完成了,它们都匹配)之外,还有一些简单的方法来检查这个吗?
答案 0 :(得分:2)
不是答案,而是一些可能有助于您诊断问题的评论:
收集大量缓存诊断数据 - 在缓存配置部分中,将缓存工作者角色配置部分中的Microsoft.WindowsAzure.Plugins.Caching.DiagnosticLevel
值更改为4
。执行此操作后,在缓存工作者角色的OnStart()方法中添加以下代码行:
DiagnosticMonitorConfiguration dmConfig = DiagnosticMonitor.GetDefaultInitialConfiguration();
// Configure the collection of cache diagnostic data.
CacheDiagnostics.ConfigureDiagnostics(dmConfig);
DiagnosticMonitor.Start("Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString",
dmConfig);
return base.OnStart();
希望这可以让您了解到底发生了什么。
答案 1 :(得分:0)
这也不是您问题的直接答案,但我认为解决您的情况可能会有所帮助。
当我在计算机模拟器中运行托管服务并且有意禁用缓存时,我遇到了这个例外 - 在以前版本的Windows Azure缓存中,DataCacheFactory
构建会抛出异常,我会正确处理它,而对于版本2.1(和Azure SDK 2.1),DataCacheFactory
的构造没有错误,但是在你提到的异常被抛出之前我已经被卡住了DataCache
构造了3分钟。 / p>
我已经使用了Gaurav Mantri在his answer中描述的过程,并且我已经发现在以前版本的Windows Azure缓存中DataCacheFactory
如果缓存角色是在csdef
中找不到,而在2.1中它会将缓存角色名称视为网络中的地址 - 从而导致3分钟的等待和随后的异常。
因此我调整了我的代码以检测这种新行为 - 有关详细信息,请参阅this SO question