【问题标题】:CORS policy access issue with Chatbot in sdk v4 C# .Net Coresdk v4 C# .Net Core 中 Chatbot 的 CORS 策略访问问题
【发布时间】:2019-10-23 00:51:18
【问题描述】:

我有一个在.Net Core 中使用sdk v4 开发的聊天机器人。我在 Azure 上部署了机器人,它运行良好。一天结束时,我再次与之交互,并开始收到以下错误:

发生了一个或多个错误。 (操作返回一个无效的状态码‘Forbidden’)

在我的浏览器控制台中,我看到了这个:

从源“https://portal.azure.com”访问位于“https://botservice.hosting.portal.azure.net/botservice/api/ClientTrace”的 XMLHttpRequest 已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:它没有 HTTP ok 状态。

我有什么遗漏吗?为什么它开始突然发生?原因和后果是什么?

【问题讨论】:

  • 试试这个看看是否能解决你的问题:转到你的机器人服务=>“所有应用程序服务设置”=>CORS=>添加“*”作为记录以启用所有js请求打电话给你的机器人。这篇文章会有帮助:social.msdn.microsoft.com/Forums/azure/en-US/…
  • 我试过了。仍然出现同样的错误。
  • 您使用什么客户端与机器人交谈?如果是 WebChat,它在哪里托管?您能否提供您的 appId,以便我在后端进行调查?
  • 我正在使用网络聊天,包括直连和 Iframe。这是应用程序 ID:fdb223ef-cbe6-4175-a557-2f4d9cf5e649。网络聊天托管在演示网站上。天蓝色的网络聊天也给了我同样的错误。
  • @hkhan 呼!很高兴我们成功了!

标签: c# azure botframework chatbot


【解决方案1】:

经过大量试验和错误,这就是问题所在:

我试图深入研究您的问题,但在与您的机器人聊天时,我收到“订阅处于禁用状态”。您是否关闭了 Azure 订阅?

我刚刚发现我的开发机器人所在的那个特定订阅已被关闭或其他什么。


我的第一个建议是您需要确保azure portal > your resource group > your app service > Settings > CORS 看起来像这样:

其次,在azure portal > your resource group > your web app bot > Channels 中,如果您启用了 DirectLine 通道并且正在使用Enhanced authentication options,请确保列出了相应的客户端主机。

这根本不是一个常见的错误。确保您按照the Deployment Docs 部署了机器人。


如果您仍然遇到麻烦,请告诉我。这个“答案”对于评论来说太长了,但如果你尝试这些,我可以编辑它,让我知道它是怎么回事。


更新 1

你有没有机会使用 Websockets?如果是这样,请尝试禁用它们。

我没有看到后端出现任何错误,这让我相信这可能是您这边的问题。您是否位于可能阻止访问的代理或防火墙后面?

Azure Portal > Your Resource Group > Your App Service > TLS/SSL settings,您是否启用了 TLS 1.2?

Application Insights 是否显示任何错误?如果是这样,请向他们更新您的问题。

【讨论】:

  • 我没有为 DirectLine 使用任何增强的身份验证选项。我检查了我的 CORS,它们有你分享的起源。我还通过添加 * 来测试所有内容。相同的代码库在不同的 azure 客户端中运行良好。在我的天蓝色中,机器人确实向我展示了欢迎自适应卡。只是当我尝试发送消息时,我才收到上面分享的错误。
猜你喜欢
  • 2020-04-06
  • 2020-11-02
  • 2020-03-01
  • 2023-01-14
  • 2020-05-22
  • 1970-01-01
  • 2020-07-30
  • 2021-04-15
  • 2021-02-14
相关资源
最近更新 更多