DirectLine 客户端上的 startConversationAsync() 未完成

startConversationAsync() on DirectLine client doesn't finish

我在 botframework v3 上有一个机器人 运行ning。我创建了一个直线频道,以便我可以解析来自 Alexa 和 Google Home 的请求。这些请求通过在 Amazon cloud/Google 云和机器人服务之间架起桥梁的 Web 服务进行。 api/alexa 收到 Alexa 电话,api/Google 收到 Google 助理电话。我 运行 这在本地 webservice 之间,因此我通过带有 host-headers=rewrite 的 ngrok 路由请求。 Alexa 工作正常,但 Google Assistant 不行。不知何故,谈话没有开始。见下方代码

从 Alexa 控制器启动 directLine(有效):

    var client = _directLineMaker.GetClient(ConfigAndConstants.DirectLineSecret);

    var conversation = await client.Conversations.StartConversationAsync();
    session.Attributes[ConfigAndConstants.DictKeyWatermark] = null;

从 Google 控制器启动 directLine(不起作用):

    var client = _directLineMaker.GetClient(ConfigAndConstants.DirectLineSecret);

    /// client is defined
    var conversation = await client.Conversations.StartConversationAsync();
    /// The line below is never reached
    var session = sessionId;

在这两种情况下,_directlineMaker.GetClient() 只是 returns

    return new DirectLineClient(directLineSecret);

行为一致; Google Google 助理从未工作过,Alexa 一直在工作。我没有看到我的做法有什么不同,而且我对导致这种行为的原因一无所知。

什么会导致 startConversationAsync 没有 return 任何东西?

编辑:

启动 Google 助手的对话在我调用

时有效
var conversation = client.Conversations.StartConversation();

所以我很高兴。还是不解为什么异步版本挂了

这与直线无关,但一切都与我造成了僵局。 运行 此代码在 Task.Run( () => { } ).Result 中;解决了一切。