0

我已经从 Nuget 安装了 Windows Azure Caching 2.1.0.0,并按照此 SO answer中的说明使用 Azure SDK 2.1 配置了工作人员角色的客户端库诊断集合。

不幸的是,当我在开发结构中启动应用程序时,我得到以下异常——我不明白为什么它抱怨配置文件。我已经搜索过这个错误,但没有发现与我的案例相关的内容。

Microsoft.ApplicationServer.Caching.DataCacheException was caught
ErrorCode=9004
HelpLink=http://go.microsoft.com/fwlink/?LinkId=164049
HResult=-2146233088
Message=ErrorCode<ERRCMS0004>:SubStatus<ES0001>:Configuration file
(file name:"{0}") not found.
Source=Microsoft.ApplicationServer.Caching.Core
SubStatus=-1
StackTrace:
   at Microsoft.ApplicationServer.Caching.ConfigFile.
     ThrowException(Int32 errorCode)
   at Microsoft.ApplicationServer.Caching.AzureCommon.
     MemcacheUtility.GetRoleConfigPath()
   at Microsoft.ApplicationServer.Caching.AzureCommon.
     CacheDiagnostics.ConfigureMemcacheShimCrashDumps
     (DiagnosticMonitorConfiguration diagnosticMonitorConfig)
   at Microsoft.ApplicationServer.Caching.AzureCommon.
      CacheDiagnostics.ConfigureDiagnostics
      (DiagnosticMonitorConfiguration diagnosticMonitorConfig, 
      String diagnosticsStorageAccountConfigurationSettingName)
   at Microsoft.ApplicationServer.Caching.AzureCommon.
      CacheDiagnostics.ConfigureDiagnostics(
      DiagnosticMonitorConfiguration diagnosticMonitorConfig)
4

2 回答 2

0

对我来说,问题是Web.config文件被复制到 bin/Release 文件夹下,而在文件夹CacheDiagnostics.ConfigureDiagnostics下查找它approot。因此,我手动将文件粘贴到那里以在本地进行测试。在云端,配置文件被复制到正确的目录下。

于 2015-01-20T18:10:18.987 回答
0

我已经Microsoft.ApplicationServer.Caching.AzureCommon使用 ILSpy 检查了程序集,并且发现了一个用于CacheDiagnostics.ConfigureDiagnostics搜索web.config*.dll.config查找角色的函数——在 Azure 环境中,它会检查这两个文件,而如果它检测到计算模拟器,它只会检查web.config. 恕我直言,这是库中的一个错误(可能不是那么重要,因为缓存似乎主要用于 Web 角色)。

然后我复制了app.configfor worker 角色,我将其重命名为并将其web.config设置为复制到项目输出中——这样我就可以CacheDiagnostics.ConfigureDiagnostics毫无例外地调用。

于 2013-10-03T18:07:21.220 回答