Ограничения имени региона в AppFabric Cache - PullRequest
2 голосов
/ 02 декабря 2011

Мы используем Windows Server AppFabric Cache 6.1 x64.Наличие экземпляра Microsoft.ApplicationServer.Caching.DataCache и попытка получить объект по ключу / региону приводят к DataCacheException, если имя региона содержит символы типа '!'или '.':

 ErrorCode<ERRCA0018>:SubStatus<ES0001>:The request timed out.

'-', '_' в порядке.Тем не менее, любой символ подходит для ключа элемента, но не для названия региона. MSDN ничего не говорит о каких-либо ограничениях.Зачем?Как тебе избежать этого?

1 Ответ

1 голос
/ 02 декабря 2011

Закончено этим:

    static Regex regex = new Regex(@"[^a-zA-Z_\-\d]", RegexOptions.Compiled);

    /// <summary>
    /// Fixes invalid characters in region names that cause 
    /// DataCacheException ErrorCode<ERRCA0018>:SubStatus<ES0001>:The request timed out.
    /// </summary>
    /// <param name="name">Region name to process.</param>
    /// <returns>Escaped name where all invalid characters are replaced with their hex code.</returns>
    protected internal static string Escape(string name)
    {
        if (string.IsNullOrEmpty(name))
            return name;

        string result = regex.Replace(name, m => ((int)m.Value.First()).ToString("X") );
        return result;
    }
...