首页 > 解决方案 > IIS 托管的 Azure Bot 通道注册 Microsoft Bot Framework sdk 聊天机器人不起作用

问题描述

我使用 Microsoft Bot Framework sdk 创建了一个聊天机器人,该 sdk 在使用 Bot Framework Emulator 以及 Microsoft App Id 和 Secret 在 localhost 上进行测试时可以正常工作。然后,我使用正确的 SSL 证书将机器人部署在可公开访问的 IIS Web 服务器上,并在导航到其链接时显示正确的“您的机器人已准备就绪!” 页面出现,显示它已启动并正在运行。

然后,我在 Azure 上创建了一个 Bot Channels Registration,并将消息传递端点连接到我的 IIS Web 服务器上托管的机器人。但是,当我尝试“在网络聊天中测试”时,机器人什么也没有显示,并且在用户界面中也没有出现错误。但是查看浏览器的开发工具控制台,有几个错误表明我的机器人 URL 被 CORS 策略从 azure 门户阻止,如下所示。有没有人遇到过这种情况和/或有可能的解决方案?谢谢!

从源“ https://portal.azure.com ”访问“ https://MyBotUrl/api/messages/ ”中的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:否Access-Control-Allow-Origin' 标头出现在请求的资源上。:1从源“ https://portal.azure.com ”访问“ https://MyBotUrl/api/messages/ ”的 XMLHttpRequest已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。

标签: c#azureiiscorsbotframework

解决方案


您是否在 IIS 中配置了 CORS?如果没有,您将需要这样做。允许原点https://portal.azure.com。这是 .NET Framework 还是 .NET Core bot(或其他)?

不确定是否需要,但有一个IIS CORS 模块


推荐阅读