Неопознанный элемент «автообнаружение» в файле web.config, созданный веб-ролью Azure

Я пытаюсь использовать поставщика состояния сеанса для кэширования Windows Azure в совмещенном кеше, работающем на двух экземплярах веб-роли. У меня есть проект ASP.NET MVC4. Я следовал руководству Microsoft по настройке это, и прошел через это несколько раз, но с тем же результатом. Когда я публикую в Azure, я получаю YSOD на каждой странице.

Я просмотрел журналы своего экземпляра Azure и обнаружил исключение, которое, вероятно, вызывает это:

Event code: 3008 
Event message: A configuration error has occurred. 

...

Exception information: 
    Exception type: DataCacheException 
    Exception message: ErrorCode<ERRCMC0003>:SubStatus<ES0001>:Error in client configuration file.
   at Microsoft.ApplicationServer.Caching.ConfigFile.ThrowException(Int32 errorCode, Exception e)
   at Microsoft.ApplicationServer.Caching.ClientConfigReader.Init(String path)
   at Microsoft.ApplicationServer.Caching.DataCacheFactoryConfiguration..cctor()

Unrecognized element 'autoDiscover'. (E:\sitesroot\0\web.config line 20)
   at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object& result, Object& resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey)
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at Microsoft.ApplicationServer.Caching.ClientConfigReader.Init(String path)

Я понимаю, что это связано с моим web.config и этим разделом:

<dataCacheClients> 
  <tracing sinkType="DiagnosticSink" traceLevel="Error" /> 
  <dataCacheClient name="default"> 
    <autoDiscover isEnabled="true"/> 
  </dataCacheClient> 
</dataCacheClients>

Но этот раздел взят прямо из руководства Microsoft. Я также попытался удалить и переустановить пакет WindowsAzure.Caching Nuget, который добавляет правильные записи в файл web.config, но он также выглядит точно так же.

Я нашел это обсуждение в MSDN о том, что похоже на ту же проблему, но я запускаю новую веб-роль Azure, поэтому я не вижу, что она должна быть связана с GAC и старой версией SDK в этом случае, или я Я что-то пропустил?

Просматривая папку bin развернутого сайта на моем экземпляре Azure, я вижу, что файловая версия моих Microsoft.ApplicationServer.Caching.Client.dll и Microsoft.ApplicationServer.Caching.Core.dll равна 1.0.4621.0. Это те же файлы, на которые ссылается мой проект, когда я устанавливаю пакет WindowsAzure.Caching Nuget. Это правильные файлы для использования?

После 15 часов отладки любой вклад в это будет высоко оценен.

Обновление:

На самом деле я заставил этот проект работать, когда я публикую его на два экземпляра новой веб-роли. Я начну проходить это развертывание и посмотрю, смогу ли я обнаружить какие-либо различия.

Обновление 2:

Разница в том, что мой проект использует версию 1.0.4621.0из Microsoft.ApplicationServer.Caching.Client.dll и Microsoft.ApplicationServer.Caching.Core.dll, а проект Microsoft использует 1.0.4655.0. Так что вполне может быть, что я использую старую версию SDK. По какой-то причине мой проект настаивает на загрузке этих файлов при публикации, даже если я их удаляю, но я вернусь с полным ответом, если это решит проблему.


person Christofer Eliasson    schedule 31.10.2012    source источник


Ответы (1)


Попробуйте обновить последнюю версию Azure SDK до 1.7 SP1 или 1.8. На этой неделе был выпущен Azure SDK 1.8. Согласно форумам MSDN, autoDiscover поддерживается только в Azure SDK 1.7.1+ для кеширование на основе ролей.

Azure SDK 1.6 ( ноябрь 2011 г.) Версия сборки: 1.0.4617.0
Azure SDK 1.7 (июнь 2012 г.), версия сборки: 1.0.4621.0
Azure SDK 1.7.1 (SP1, июнь 2012 г.) Сборка Версия: 1.0.4655.0
Azure SDK 1.8 (октябрь 2012 г.) Версия сборки: 1.0.4797.0

person SliverNinja - MSFT    schedule 31.10.2012
comment
Спасибо тебе за это! Я обошел исключение, обновившись до 1.8, как вы предлагаете. К сожалению, эти версии вызывают еще одно исключение, но я опубликую его как еще один вопрос, если не смогу его решить. Спасибо! - person Christofer Eliasson; 01.11.2012