是否可以使用 Azure URL Ping 测试来测试直线机器人是否处于活动状态?



我有一个在Azure上运行的Web App Bot。

它使用的是Microsoft机器人框架直线 API 3.0

我想使用URL Ping 测试类型而不是多阶段 Web测试进行机器人的可用性测试,因为我没有 Visual Studio 2017 企业版。

在机器人的消息控制器中,这是我处理 Ping 响应的方式。 在本地主机中运行机器人时,我能够在机器人模拟器中获得预期的响应。

else if (message.Type == ActivityTypes.Ping)
{
ConnectorClient client = new ConnectorClient(new Uri(message.ServiceUrl));
var reply = message.CreateReply();
reply.Text = "{Some message}";
await client.Conversations.ReplyToActivityAsync(reply);
}

但是,当我连接到 Azure 中的机器人时,我收到 HTTP 错误 500。

我不确定根本原因是什么,想知道这是否是由于 URL Ping 测试不知道直接线路机密。

感谢您对此的帮助。

非常感谢。

如果检查直线 API 3.0 文档中的"向机器人发送活动",则可以找到:

若要将活动发送到机器人,客户端必须创建一个活动对象来定义活动,然后发出POST请求,在请求正文中指定活动对象。

URLping 测试将向您指定的 URL 发送GET请求,它不会命中/触发您在消息控制器中为Ping活动定义的代码。

如果要通过发送Ping活动来检测机器人是否处于活动状态,可以从客户端发出如下所示的请求。

请求:

POST https://directline.botframework.com/v3/directline/conversations/{conversationId}/activities
Authorization: Bearer {directline_secret}
Content-Type: application/json

身体:

{
"type": "ping",
"from": {
"id": "user1"
}
}

最新更新