Bot 框架身份验证不起作用

Bot Framework Authentication not working

在 bot 框架门户上使用 "Test connection to your bot" 时未授权。

我在这里看到了很多关于同一主题的问题,但仍然无法使其正常工作。我试图确保我的端点授权有效,但我不断收到错误...

我已严格按照建议执行:https://docs.botframework.com/en-us/support/troubleshooting-bot-framework-authentication/

起初错误是;

InternalServerError
{
"message": "An error has occurred.",
"exceptionMessage": "Object reference not set to an instance of an object.",
"exceptionType": "System.NullReferenceException",
"stackTrace": " 

(等...)

我发现我需要将我的 azure 计划升级到 basic 以包含 SSL。但是,当我现在通过机器人框架门户测试我的机器人连接时,我得到了;

InternalServerError
{
  "message": "An error has occurred."
}

机器人本身在 Skype 和网络聊天上运行良好 - 它只是不想工作的授权部分。

在托管在 azure 上的 Web 应用程序中的 link 之后,证明我有一个 HTTPS 地址。我唯一没有尝试过的是为我的应用程序购买专用的 SSL 证书。

但是,基本的 Azure 计划肯定包括通用 Microsoft 证书下的 SSL 吗?有什么想法吗?

最后一条信息,机器人的网络聊天频道不断向我显示以下问题;

There was an error sending this message to your bot: HTTP status code
InternalServerError

Azure 托管、网络应用程序、b1 基本计划...

您是否正确设置了 appSettings?

 <!-- update these with your BotId, Microsoft App Id and your Microsoft App Password-->
<add key="BotId" value="YourBotId" />
<add key="MicrosoftAppId" value="YourAppId" />
<add key="MicrosoftAppPassword" value="YourAppPassword" />

您可以通过编辑机器人的详细信息从 Bot Framework site 中获取这些

此外,您不必为您的应用购买专用的 SSL 证书。您只需使用 https url (https://foobot.azurewebsites.net/api/messages)

设置 Messaging 端点

好的,我设法通过排除法解决了这个问题。错误代码如下(来自 MessagesController.cs);

if (activity.Type == ActivityTypes.Message || activity != null)

虽然代码运行愉快,但端点授权在命中时出错;

activity != null

因此,通过恢复到以下端点授权工作;

if (activity.Type == ActivityTypes.Message)

别问我代码中空检查是怎么实现的,我不知道!或者为什么授权不喜欢空检查..