[英]Azure Caching - Failure after upgrading to SDK 2.1 and caching 2.1
似乎已经有许多关于此主题的问题,但我相信我的可能有所不同。 我的设置:
直到大约一周前,它们和谐共存,直到我尝试升级到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? 除了查看项目中每个引用的路径(我已经做过,而且它们都匹配)之外,是否还有某种万无一失的方法来检查这一点?
并不是真正的答案,而是一些可以帮助您诊断问题的评论:
收集大量缓存诊断数据 -在“缓存配置”部分中,将“缓存工作角色”的“配置”部分中的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();
希望这应该使您对到底发生了什么有所了解。
这也不是直接解决您的问题的方法,但我认为这可能有助于解决您的问题。
当我在计算模拟器中运行托管服务并且故意禁用缓存时,我遇到了此异常-在以前版本的Windows Azure缓存中, DataCacheFactory
构造中会抛出异常,而对于版本,我会正确处理2.1(和Azure SDK 2.1)构造了DataCacheFactory
,没有错误,但是在抛出您提到的异常之前,我在DataCache
构造上停留了3分钟。
我在回答中使用了Gaurav Mantri描述的过程,并且发现在Windows Azure的csdef
,如果在csdef
找不到缓存角色,则DataCacheFactory
会引发异常,而在2.1中,会将缓存角色名称视为网络中的地址-从而导致3分钟的等待以及随后的异常。
因此,我调整了代码以检测这种新行为-有关更多详细信息,请参见此SO问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.