我已经从Nuget安装了Windows Azure Caching 2.1.0.0,并按照this 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)
答案 0 :(得分:0)
我已经使用ILSpy检查了程序集Microsoft.ApplicationServer.Caching.AzureCommon
,并且我发现了CacheDiagnostics.ConfigureDiagnostics
搜索web.config
或*.dll.config
角色的函数 - Azure环境它检查两个文件,而如果它检测到计算模拟器,它只检查web.config
。恕我直言这是库中的一个错误(可能不是那么重要,因为缓存似乎主要来自Web角色)。
然后我复制了app.config
for worker角色,我将其重命名为web.config
并将其设置为在项目输出中复制 - 这样我就可以调用{{1没有例外。
答案 1 :(得分:0)
对我来说,问题是Web.config
文件被复制到bin / Release文件夹下,而CacheDiagnostics.ConfigureDiagnostics
在approot
文件夹下查找它。所以,我手动将文件粘贴到那里进行测试。在云上,配置文件将被复制到正确的目录下。