2013-10-03 3 views
0

Я установил Windows Azure Caching 2.1.0.0 из Nuget, и я настроил коллекцию диагностики клиентской библиотеки на рабочей роли с использованием Azure SDK 2.1 в соответствии с инструкциями в this SO answer.Исключение при вызове CacheDiagnostics.ConfigureDiagnostics из рабочей роли с кешированием 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

Я проверил сборку Microsoft.ApplicationServer.Caching.AzureCommon с ILSpy и я обнаружил функцию, в которой CacheDiagnostics.ConfigureDiagnostics ищет web.config или *.dll.config для роли - на Azure Enviroment он проверяет для обоих файлов, в то время как, если он обнаружит вычислительный эмулятор проверяет только на web.config. IMHO это ошибка в библиотеке (возможно, не так важно, поскольку кэширование, похоже, используется в основном из веб-ролей).

Затем я скопировал app.config для роли работника, я переименовал его в web.config и установить его можно скопировать на выходе проекта - таким образом, я был в состоянии назвать CacheDiagnostics.ConfigureDiagnostics без исключений.

0

Для меня проблема заключалась в том, что файл Web.config копировал папку bin/Release, а CacheDiagnostics.ConfigureDiagnostics смотрел его под approot. Итак, я вручную вставил файл там, чтобы проверить его локально. В облаке конфигурационный файл копируется в правильной директории.

 Смежные вопросы

  • Нет связанных вопросов^_^