如何将异步方法的结果添加到 Glimpse Broker?

How can I add the result of an asynchronous method to the Glimpse Broker?

标题说明了一切。

我想将一些关于 async 方法的结果的信息放入 Glimpse Message Broker 中。为此,我尝试使用 Task.ContinueWith

        task.ContinueWith((t) =>
        {                
            var response = t.Result;
            var message = new ExternalRequestMessage
            {
                Url = url,
                Method = method,
                RequestBody = requestBody,
                WasAsync = true,
                StatusCode = (int)response.StatusCode,
                Status = response.StatusCode.ToString(),
                WasSuccess = response.IsSuccessStatusCode,
                Fault = response.Fault,
            };

            if (messageBroker != null)
            {
                messageBroker.Publish(message);
            }
        });

这段代码可以毫无问题地执行,我可以设置一个断点并跟随代码执行,所以我知道它会执行。

但是,当我从代理读取消息时,它们不在那里。例如,下面标签代码上的断点显示消息不存在:

    public override object GetData(ITabContext context)
    {
        return context.GetMessages<ExternalRequestMessage>();
    }

另外 - 我将 ExternalRequestMessages 从同步上下文放到代理上,这些消息按预期显示在选项卡中。

任何人都可以阐明这里发生的事情吗?

编辑: 我应该补充一点,我正在使用 ContinueWith 因为我不希望应用等待结果只是为了将消息添加到代理, 所以只使用 task.Result 不是一个选项。

想通了-

我的 web.config 文件有

<appSettings>
    <add key="Glimpse:DisableAsyncSupport" value="true"/>
</appSettings>

删除此值或将其设置为 false 可解决问题。