4

我已将Miniprofiler连接到我的本地 ASP.NET Core 项目,它按预期工作。现在我需要它在一个托管环境中工作,在这个环境中有同一个网站的多个实例并且没有粘性会话。据我了解,如果您在配置分析器时仅设置存储选项,则应该支持此功能。但是,设置存储似乎没有任何作用。我像这样初始化存储:

var redisConnection = "...";
MiniProfiler.DefaultOptions.Storage = new RedisStorage(redisConnection);
app.UseMiniProfiler();

完成此操作后,我希望我可以打开一个分析页面,并将结果添加到我的 redis 缓存中。然后,我还希望我的网站的新实例会列出原始分析结果。但是,在生成新的配置文件结果时,不会将任何内容写入缓存。

为了测试连接,我尝试手动保存分析器实例 ( storage.Save()) 并将其保存到存储中。但是同样,在显示分析器结果时不会加载保存的结果(无论如何,我见过的所有示例都不需要您这样做)。我有一种感觉,我错过了一些关于存储应该如何工作的观点。

4

1 回答 1

3

事实证明,我的假设MiniProfiler.DefaultOptions.Storage将被使用是错误的。将我的设置代码更改为以下内容后,它可以工作。

// Startup.cs ConfigureServices
var redisConnection = "...";
services.AddMiniProfiler(o =>
{
    o.RouteBasePath = "/profiler";
    o.Storage = new RedisStorage(redisConnection); // This is new
});

// Startup.cs Configure
app.UseMiniProfiler();
于 2019-09-02T11:57:21.637 回答