【问题标题】:Windows Azure Web-Role Caching (Preview) "hangs" makes the emulator stuck in deploy loopWindows Azure Web 角色缓存(预览版)“挂起”使模拟器陷入部署循环
【发布时间】:2012-06-13 21:17:20
【问题描述】:

我正在尝试按照 Microsoft 网站上的指南,将 Windows Azure AppFabric 缓存替换为 2012 年 6 月 SDK 版本中引入的新发布的基于角色的缓存。

但是,在我的 Web 角色中选中 “启用缓存(预览)” 时,模拟器将无法成功实例化网站(模拟器日志:http://pastebin.com/dwbDvak2)。似乎它陷入了某种循环。禁用 Web 角色缓存使其再次工作。卸载所有以前的 Azure SDK 并重新安装 1.7 版本后,我得到了相同的结果。

Visual Studio 告诉我“角色实例的启动时间比预期的要长。要继续等待吗?” [是][否]。按“是”让它一直等待,并一遍又一遍地显示。

是否有人可能知道如何解决上述问题,或者可能已经尝试过新的 Web 角色缓存功能并使其在 azure 模拟器中运行?

Screen shot of the azure local debugging environment deployment dialog

谢谢。

更新:

我创建了一个新的解决方案,只添加了一个简单的 MVC 站点,添加了 Web 角色并启用了缓存,同样的事情发生了。因此,我查看了事件查看器,发现了 3 个与该问题相关的条目:

Fault bucket 3034750239, type 5
Event Name: CLR20r3
Response: Not available
Cab Id: 0

Problem signature:
P1: cacheinstaller.exe
P2: 1.0.4655.0
P3: 4fb0f3f9
P4: CacheInstaller
P5: 1.0.4655.0
P6: 4fb0f3f9
P7: 11
P8: 47
P9: System.TypeLoadException
P10: 

Attached files:
C:\Users\anan\AppData\Local\Temp\WEREA8F.tmp.WERInternalMetadata.xml

These files may be available here:
C:\Users\anan\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_cacheinstaller.e_1fbc3b72afb6acf93335ca8611850d289906c25_2ddaf529

Analysis symbol: 
Rechecking for solution: 0
Report Id: 3138ba06-b344-11e1-a8d6-402cf41c1e07
Report Status: 0


Application: CacheInstaller.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.MissingMethodException
Stack:
   at Microsoft.ApplicationServer.Caching.AzureCommon.Package.InitializeExternalStoreIfRequired()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ThreadHelper.ThreadStart()

然后:

Application: CacheInstaller.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.MissingMethodException
Stack:
   at Microsoft.ApplicationServer.Caching.AzureCommon.Package.InitializeExternalStoreIfRequired()
   at System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
   at System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object)
   at System.Threading.ThreadHelper.ThreadStart()

还有:

Faulting application name: CacheInstaller.exe, version: 1.0.4655.0, time stamp: 0x4fb0f3f9
Faulting module name: KERNELBASE.dll, version: 6.1.7601.17651, time stamp: 0x4e21213c
Exception code: 0xe0434352
Fault offset: 0x000000000000cacd
Faulting process id: 0x17b4
Faulting application start time: 0x01cd4750f5db0096
Faulting application path: c:\users\anan\documents\visual studio 11\Projects\AzureCacheTest\AzureCacheTest\csx\Debug\roles\WebRole\plugins\Caching\CacheInstaller.exe
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Report Id: 33a53608-b344-11e1-a8d6-402cf41c1e07

仅供参考:这是一个 Windows 7 x64 企业版,使用 Visual Studio 2012 RC。

【问题讨论】:

标签: .net azure azure-web-roles azure-caching


【解决方案1】:

我有同样的问题。要处理 AppFabric 服务器 dll 冲突 - 检查您是否安装了 AppFabric 服务器,然后卸载缓存或从 GAC 中删除缓存程序集。我删除并且模拟缓存工作正常。

我有一些信息可能对我们的博客有所帮助:

http://blog.elastacloud.com/2012/06/09/using-the-windows-azure-cache-preview-with-sdk-1-7/

【讨论】:

  • 感谢 Richard 在 MSDN 和此处发布您的链接,并指出我错过的细节。非常感谢!
  • 我没有安装 AppFabric 服务器。但是这些程序集在 GAC 中。我通过运行 gacutil /u Microsoft.ApplicationServer.Caching.Clientgacutil /u Microsoft.ApplicationServer.Caching.Core 删除了它们
【解决方案2】:

缺少方法可能意味着加载的程序集没有该方法。您能否确保已将正确的程序集添加到您的项目中?

确保您没有在计算机中安装 Windows AppFabric Server,因为它会 GAC 缓存 dll,该缓存 dll 将在运行时获取

【讨论】:

    【解决方案3】:

    对我来说,问题在于我在 UNC Share 上运行我的项目(实际上它在我的 macbook 上的 VM 中运行)。当我在工作角色上选中“启用缓存”框后启动调试器时,它就会挂起。来看看,它大约每 2 秒在 C:\Windows\System32\%LOCALAPPDATA%\CrashDumps 中创建一个 160MB 的转储文件。在调试其中一个之后,我可以看到第一个错误是当它尝试在我的工作角色的缓存内容上启动 cmd.exe 时,它​​说 CMD 不能在网络共享上运行,所以它默认为 windows/system32 或东西。

    那时我发现了这篇方便的花花公子 7 岁的 MS 知识库文章:http://support.microsoft.com/kb/156276 当我在注册表路径 HKEY_CURRENT_USER\Software\Microsoft\Command Processor 下添加 DisableUNCCheck REG_DWORD 并将值设置为 0 x 1 (Hex) 时,一切都像冠军一样开始了。希望这对其他人有帮助。

    【讨论】:

      【解决方案4】:

      你的意思是只要勾选CheckBox开启缓存,就会出现这个错误?这不应该发生......它在我的机器上运行良好。

      您是在创建新项目还是升级现有项目?尝试创建一个新项目。

      还要检查以下日志:

      附件:

      C:\Users\anan\AppData\Local\Temp\WEREA8F.tmp.WERInternalMetadata.xml 
      

      这些文件可能在此处可用:

      C:\Users\anan\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppCrash_cacheinstaller.e_1fbc3b72afb6acf93335ca8611850d289906c25_2ddaf529 
      

      【讨论】:

      • 正如我所说,我也尝试过创建一个全新的解决方案,结果是一样的。不幸的是,找不到这些文件。当我注意到事件查看器中的日志时,我尝试寻找它们。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-16
      • 2012-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多