Программная конфигурация кэша Azure приводит к ошибке ErrorCode ERRCA0029 SubStatus ES0001 Токен авторизации, переданный пользователем, недействителен

Я пробую Proof of Concepts на основе кода по адресу http://msdn.microsoft.com/en-us/library/windowsazure/gg618003. Этот кеш доступен, если я использую настройки app.config. Когда я переключил приложение на использование программной конфигурации, я постоянно получаю эту ошибку. Я уже пробовал конфигурацию кэша Azure программно не проверить и многие другие решения безрезультатны.

Вот мой фрагмент кода.

{код}

        String                              acsKey = "AcsKey removed intentionaly";
        DataCacheFactoryConfiguration       cacheFactoryConfiguration;
        DataCacheSecurity                   dataCacheSecurity;
        DataCacheServerEndpoint[]           serverEndpoints = new DataCacheServerEndpoint[1];
        SecureString                        secureAcsKey = new SecureString();

        serverEndpoints[0] = new DataCacheServerEndpoint("EndPont removed intentionaly", 22243);

        //
        // Create SecureString from string
        //
        foreach (char keyChar in acsKey)
        {
           secureAcsKey.AppendChar(keyChar);
        }
        secureAcsKey.MakeReadOnly();
        dataCacheSecurity  = new DataCacheSecurity(secureAcsKey);

        //
        // Initialize Factory Configuration
        //

        cacheFactoryConfiguration = new DataCacheFactoryConfiguration(); // This line throws exception. Note that the key is yet to be assigned to SecurityProperties as per documentation.
        cacheFactoryConfiguration.Servers = serverEndpoints;
        cacheFactoryConfiguration.SecurityProperties = dataCacheSecurity;

        _cacheFactory = new DataCacheFactory(cacheFactoryConfiguration);
        _cache = _cacheFactory.GetDefaultCache();

{код}


person Chetan    schedule 11.09.2012    source источник
comment
Я только что понял это. Я использовал инструкции по установке NuGet (потому что так написано в документации). Это добавляет запись конфигурации, о которой я не знал. Он имел шаблонную версию файла и вызывал проблемы. Как только я удалил его, код начал работать нормально.   -  person Chetan    schedule 12.09.2012


Ответы (1)


Попробуйте передать все параметры при создании, а не после создания?

    var configFactory = new DataCacheFactoryConfiguration
                            {
                                Servers =
                                    new List<DataCacheServerEndpoint>
                                        {new DataCacheServerEndpoint(cacheServer, cachePort)},
                                SecurityProperties =
                                    new DataCacheSecurity(Encryption.CreateSecureString(cacheAuthorization),
                                                          true)
                            };
person Igorek    schedule 11.09.2012
comment
Я обнаружил, что проблема заключается в другом. Я нигде не нашел Encryption.CreateSecureString. Фрагмент кода тоже работает (после того, как я исправил проблему с app.config). - person Chetan; 12.09.2012