C# 如何解决bot framework emulator上发生的POST401directline.postActivity错误?

C# 如何解决bot framework emulator上发生的POST401directline.postActivity错误?,c#,azure,botframework,bots,C#,Azure,Botframework,Bots,我不想使用“Azure机器人服务”。 我已经将主机bot应用程序托管到azure,之后获得托管url,然后使用端点url、microsoft id和密码在bot框架中注册了一个bot。 在azure portal上创建新的应用内注册时,我获得了microsoft Id和密码, 然后,我在VisualStudio代码中使用了相同的Microsoft Id和密码并重新发布。 但在bot framework测试模拟器上进行测试时,它显示“抱歉,我的bot代码有问题”。当我使用microsoft应用程序

我不想使用“Azure机器人服务”。 我已经将主机bot应用程序托管到azure,之后获得托管url,然后使用端点url、microsoft id和密码在bot框架中注册了一个bot。 在azure portal上创建新的应用内注册时,我获得了microsoft Id和密码, 然后,我在VisualStudio代码中使用了相同的Microsoft Id和密码并重新发布。 但在bot framework测试模拟器上进行测试时,它显示“抱歉,我的bot代码有问题”。当我使用microsoft应用程序Id和密码在本地bot framework模拟器上进行测试时,它显示“无法发布活动。未经授权。POST401directline.postActivity” 我使用的是“bot框架”:3.9和“.net框架”:4.6


不推荐使用Bot Framework SDK的V3。建议使用V4。

关于这一点:

  • 然后在bot框架中注册了一个bot 具有 端点url, microsoft id和密码

  • 在中创建新注册时,我获得了microsoft Id和密码 azure门户上的应用程序注册

这些是多余的步骤。实际上,您应该做的是在Azure门户中创建一个
Bot频道注册
,或者使用
az-Bot
CLI

我不想使用“Azure机器人服务”

这没有意义。你能进一步解释一下你的意思吗?你上面所做的两个步骤正是这样做的;创建
机器人通道注册
“典型”机器人程序是两个部分;
机器人通道注册
(允许从多个地方连接到你的机器人程序,注意身份验证等)和一个web应用程序(您的机器人程序代码)。您不想使用哪一个

关于仿真器/身份验证配置:

我相信你知道这一点,但我想确认你知道机器人中appid/密码的行为。这也是为了其他可能不知道的人的利益

您可以使用emulator针对运行bot或部署的bot的本地主机进行测试。当使用localhost bot进行测试时,您可以使用appid/密码进行测试,也可以不使用。如果不使用appid/密码进行测试,则必须确保未在appsettings.json中配置它们(在v4中。其他版本等可能使用不同的配置类型)在emulator中启动bot时未提供。如果使用进行测试,则必须在appsettings.json中进行配置,并在emulator中启动bot时提供它们

现在,让我们继续测试在线/已部署的bot。在已部署的bot中,它将在appsettings.json中获取appid/密码,或者从Web应用程序/应用程序服务设置的配置中获取。这些设置必须标题为
MicrosoftAppId
MicrosoftAppPassword

所以…尽管如此,我的假设是您创建了两个应用程序(AAD应用程序),并且可能混淆了appid/密码。或者,在Web应用程序()中,或者在配置文件中,或者在Azure的配置设置中,它的配置不完全正确


我真的希望这能有所帮助。

您的https(安全)失败了吗使用TLS/SSL连接;或登录失败?抱歉,我不了解您,您要求的是哪种登录类型?设置链接上显示的登录名。在localhost中进行测试时,不要添加microsoftID和密码,只需从env/resource文件中删除并进行测试,我也可以检查它是否应为https