我正在使用v4.0。

更新:

到目前为止,我已经一起破解了:

public class AllFilter : IFilter
{
    #region IFilter Members

    IndexCollection IFilter.GetIndexCollection()
    {
        return new IndexCollection();
    }

    MatchOptions IFilter.GetMatchOptions()
    {
        return MatchOptions.MatchAll;
    }

    #endregion
}

public class CacheMonitorController : Controller
{
    public ActionResult Index()
    {
        var results =
            from result in ApplicationNamespace.GlobalNamespace.Query(new AllFilter()).OfType<StateServerKey>()
            group result by result.AppId;

        var b = new StringBuilder();

        foreach (var result in results)
        {
            var cache = CacheFactory.GetCache(result.Key);
            b.AppendLine(cache.Name);
        }

        return this.Content(b.ToString(), "text/plain");
    }
}


不幸的是,即使在创建缓存时肯定有一个名称,缓存的名称也总是以null出现。该名称肯定需要在UI中识别,因此我需要一种获取它的方法。

最佳答案

显然,在v4.0中无法执行此操作-存储本身的键以及值的键都存储为散列(以uint的形式),因此,除非NamedCache为使用实际名称检索,则无法知道该名称。

唯一的选择是跟踪缓存中另一个存储区中键的字符串值。

ScaleOut软件的Mark Waterman表示,检索名称的功能将在v5.0中提供,该功能将于2009年春季发布。

关于c# - 如何从ScaleOut StateServer(SOSS)获取可用的NamedCache对象的列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/503580/

10-15 20:15