ChatBot 在 Web 模拟器中无法运行,但在本地 Bot Framework 模拟器中运行良好

2024-03-28

我开发了与 SharePoint On Premise 集成的 ChatBot。当我在模拟器中调试 ChatBot 时,它可以工作。但是,当我使用 DirectLine 在 Azure 中的 Web 模拟器和公司网站托管的网站上进行调试时,它不起作用。

有谁知道如何解决它?

这是我的截图。 左侧来自 Web 模拟器,右侧来自本地 Bot Framework 模拟器

更新源代码(2019 年 12 月 9 日)

XmlNamespaceManager xmlnspm = new XmlNamespaceManager(new NameTable());

Uri sharepointUrl = new Uri("https://mvponduty.sharepoint.com/sites/sg/daw/");

xmlnspm.AddNamespace("atom", "http://www.w3.org/2005/Atom");
xmlnspm.AddNamespace("d", "http://schemas.microsoft.com/ado/2007/08/dataservices");
xmlnspm.AddNamespace("m", "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata");

NetworkCredential cred = new System.Net.NetworkCredential("[email protected] /cdn-cgi/l/email-protection", "Pa$$w0rd", "mvponduty.onmicrosoft.com");

HttpWebRequest listRequest = (HttpWebRequest)HttpWebRequest.Create(sharepointUrl.ToString() + "_api/lists/getByTitle('" + "data@work" + "')/items?$filter=Keywords%20eq%20%27bloomberg%27");
listRequest.Method = "GET";
listRequest.Accept = "application/atom+xml";
listRequest.ContentType = "application/atom+xml;type=entry";

listRequest.Credentials = cred;
//LINE 136 start from below
HttpWebResponse listResponse = (HttpWebResponse)listRequest.GetResponse();
StreamReader listReader = new StreamReader(listResponse.GetResponseStream());
XmlDocument listXml = new XmlDocument();

listXml.LoadXml(listReader.ReadToEnd());

if (listResponse.StatusCode == HttpStatusCode.OK)
{
    Console.WriteLine("Connected");
    await turnContext.SendActivityAsync("Connected");
}

// Get and display all the document titles.
XmlElement root = listXml.DocumentElement;
XmlNodeList elemList = root.GetElementsByTagName("content");
XmlNodeList elemList_title = root.GetElementsByTagName("d:Title");
XmlNodeList elemList_desc = root.GetElementsByTagName("d:Description");

//for LINK
XmlNodeList elemList_Id = root.GetElementsByTagName("d:Id");
XmlNodeList elemList_Source = root.GetElementsByTagName("d:Sources");
XmlNodeList elemList_ContentTypeId = root.GetElementsByTagName("d:ContentTypeId");

var attachments = new List<Attachment>();
for (int i = 0; i < elemList.Count; i++)
{

    string title = elemList_title[i].InnerText;
    string desc = elemList_desc[i].InnerText;

    string baseurllink = "https://mvponduty.sharepoint.com/sites/sg/daw/Lists/data/DispForm.aspx?ID=";
    string LINK = baseurllink + elemList_Id[i].InnerText + "&Source=" + elemList_Source[i].InnerText + "&ContentTypeId=" + elemList_ContentTypeId[i].InnerText;

    //// Hero Card
    var heroCard = new HeroCard(
        title: title.ToString(),
        text: desc.ToString(),

        buttons: new CardAction[]
        {
            new CardAction(ActionTypes.OpenUrl,"LINK",value:LINK)
        }
    ).ToAttachment();
    attachments.Add(heroCard);
}
var reply = MessageFactory.Carousel(attachments);
await turnContext.SendActivityAsync(reply);

2019 年 12 月 17 日更新

我曾尝试使用嵌入式和直接线路。但错误仍然相同。

该机器人未托管在 SharePoint 中。

2020 年 1 月 6 日更新它在 Azure Bot 服务中不起作用


根据你的描述,你可以在本地获取数据。这说明你的代码和逻辑都没有问题。

我注意到您的共享点 URL 是:https://mvponduty.sharepoint.com/sites/sg/daw/我尝试访问它,还尝试访问您的整个请求 URL:https://mvponduty.sharepoint.com/sites/sg/daw/_api/lists/getByTitle('data@work')/items?$filter=Keywords eq 'bloomberg'两者的响应都是404。

您说这是一个本地站点,那么您能否检查一下是否无法从公共网络访问该站点?

我假设当您在本地测试代码时,您可以像在内部网络中一样访问此站点,从而能够访问本地站点。但是,当您将代码发布到 Azure 时,它​​不再属于您的内部工作:它位于公共网络中,因此无法访问导致此错误的本地 sharePoint 站点。

众所周知,机器人代码托管在Azure应用程序服务上,如果此错误是由上述原因引起的,可能是Azure 应用服务混合连接功能 https://learn.microsoft.com/en-us/azure/app-service/app-service-hybrid-connections在这种情况下会很有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ChatBot 在 Web 模拟器中无法运行,但在本地 Bot Framework 模拟器中运行良好 的相关文章

  • 在 Web 应用程序机器人和功能机器人之间进行选择 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 根据本文 在 Azure 机器人服务中创建机器人时 您有两种托管选项 https learn microsoft com en us bot f
  • 客户端对象模型按 id 获取项目错误 - “项目不存在。它可能已被其他用户删除”

    当我尝试按 id 执行获取列表项时出现错误 ClientContext clientContext TokenHelper GetClientContextWithAccessToken sharepointUrl ToString acc
  • LUIS 与特殊字符相关的问题

    TEXT 被转换为 TEXT 在 LUIS 中 当我们识别实体名称时 特殊字符的问题 请参考下图 这里是每月的智商仪表板hospitalists被转换为reportname gt monthly iq dashboard hospitali
  • 使用 Sharepoint 2013 REST Api / CSOM 检索发布图像字段

    我们使用 Sharepoint 2013 REST API 从 Sharepoint 获取所有新闻项目 我们制作了一个自定义 ContentType Newsitem 具有多个属性 包括发布图像字段 var contentTypeId 0x
  • Microsoft Teams 中的 ActionTypes.MessageBack 存在问题?

    我正在使用带有 C 的 Bot Builder 3 11 版本 我有一个 ActionTypes MessageBack 类型的操作按钮 具有以下属性 cardActions Add new CardAction Type ActionTy
  • Teams 中的 QnA Maker Bot 格式问题

    我们使用 QnA Maker 知识库实现了一个简单的 Azure 机器人 并启用了 Teams 通道 在 webChat 中 Markdown 格式渲染得很好 然而 在 Teams 中 Markdown 格式并不总是按预期工作 如果答案中没
  • 在 Microsoft botframework 中回复“正在输入”消息

    我正在 c net 和 LUIS 认知服务上使用 MicrofsoftBotFramework 开发聊天机器人 我希望当用户输入时 它应该在输入或机器人正在输入时回复 public async Task
  • 仅通知 Teams 机器人的服务 URL

    我正在开发一个仅通知团队机器人 仅限于单个天蓝色广告租户的成员 根据本文档 https learn microsoft com en us microsoftteams platform resources bot v3 bots cont
  • Azure Bot 通道注册,通道部分为空

    我在 Azure 门户上使用 机器人通道注册 服务时遇到问题 创建服务后 频道 部分不会加载 仅保留空白 Screenshot 有什么帮助吗 经过多次测试 我通过将Azure门户的语言和区域更改为英语 美国 解决了该问题
  • 简单对话框中的 Stackoverflow 异常

    您好 我在这两个对话框中收到 Stackoverflow 异常 Dialog A正在从主对话框类中调用 对话框A有一个选择去Dialog A child and Dialog A child有选择回去Dialog A 但它遇到了 Stack
  • 微软机器人框架自行崩溃[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我收到这个令牌请求 error invalid request error description AADSTS90002 No
  • Botconnector 不适用于自签名的 Nodejs 机器人

    我创建了一个简单的机器人 自签名 ssl 证书 显然这不适用于机器人连接器 几秒钟后 我从机器人收到以下错误 error code BadCertificate message An error occurred while sending
  • Bot Framework v4 中的等待方法

    在 Bot Framework 的版本 3 中 我可以调用卡片并等待用户的响应 context Call new MyHeroCardOptions MyResumeAfter Where 我的英雄卡选项是 HeroCard 类型的卡并且我
  • 如何结束谈话?

    我已经使用 Bot Framework 创建了一个机器人 并且正在使用conversationID用我的后端对话引擎维护状态 我在文档中找不到用于结束对话的信息 至关重要的是 在某些时候 用户能够发出对话 结束或退出 的信号 以便下次他们开
  • 如何将 Python 中的 MS Botframework 部署到 Azure

    我一直在玩 Botframework 并尝试从 git 上传示例代码https github com Microsoft botbuilder python tree master samples EchoBot with State ht
  • 查找通过付费渠道的消息数量

    按照这个page https azure microsoft com en gb pricing details bot service 网络聊天和直线电话被视为优质渠道 我想知道以下事情 在哪里可以找到通过付费渠道传达的付费消息数量 我知
  • 更改 botframework Formflow 中的确认选项

    我在 botframework 中创建了一个表单流 我想更改确认选项 默认情况下需要 是 和 否 但我希望它继续进行 而不是 是 即使用户输入 确定 是 是 等 我如何添加确认选项 您需要将新条款添加到YesFormBuilder 配置的数
  • BotBuilder - 具有调度错误的 NLP 不知道这样的主机

    我是使用 Bot Builder 框架的新手 我正在关注微软的这个教程https learn microsoft com en us azure cognitive services qnamaker tutorials integrate
  • Compose 扩展抛出错误:找不到 V3 代理

    我是在 Teams 中创建 Compose 扩展的新手 当我将其添加到我的 Teams 时遇到问题 所有配置均已就位 从注册机器人到将其托管为 Azure 上的机器人服务 再到处理代码中的撰写扩展查询 我已在清单中共享了机器人 ID 并为机
  • 为 Azure Bot 服务设置插槽或多个环境

    我正在使用 Azure Bot 服务开发 Microsoft Bot 希望为 QA 开发 暂存设置不同的环境或插槽 就像我们在 azure 应用程序服务中所做的那样 在设置中 我没有找到 部署槽位 选项 但在设置下 每个设置都有 槽位设置

随机推荐

  • 如何获取Spring事务管理器实例?

    我使用注释来标记应在事务中执行的方法 但是 在一个地方我需要做transactionManager rollback 手动 无注释 我怎样才能获得transactionManager object 如果你想回滚当前事务 你可以使用 Tran
  • 注释正则表达式

    我正在尝试在 JavaScript 中注释正则表达式 似乎有很多关于如何remove使用正则表达式的代码注释 但实际上不是如何commentJavaScript 中的正则表达式因此更容易理解 不幸的是 JavaScript 没有像其他语言那
  • 当缓冲区有未保存的更改且未命名时退出 vim?

    我在 vim 中创建了一个空白的 临时缓冲区 即不与特定文件关联 方法是使用 vnew 然后我玩了一些文本 现在我只想退出编辑器 不保留这个 临时缓冲区 的内容 当我输入命令时 q Vim 给我 No Name E37 No write s
  • 如何增加 Angular UI Bootstrap 中的模式宽度?

    我正在创建一个模式 var modal modal open templateUrl partials welcome controller welcomeCtrl backdrop static scope scope 有没有办法增加它的
  • 如何在vuejs中的输入文本中添加禁用属性?

    我有2个网址 register register sponsor 4 The register路线会给我一个干净的输入文本 我可以在其中输入所有内容第二条路由将带来相同的输入 但其值为 4 并且已禁用 因此用户无法修改它 我设法使用 vue
  • Mapbox GL JS:将基础层设置为白色?

    我想显示带有白色背景的 Mapbox GL JS 地图 而不是地图背景 这是我现在的代码 mapboxgl accessToken mytoken var map new mapboxgl Map container map style m
  • 每分钟有多少个请求被视为“重负载”? (近似)

    人们经常在他们的 优化和性能相关 问题和答案中谈论 重负载 我试图在典型服务器上的常规 Web 应用程序的上下文中 以 SO 及其相当小的基础设施为例 以每分钟的请求数来量化这一点 假设它们立即返回 以简化并获取数据库速度 等式之外 我正在
  • Android 自定义 EditText 在 ICS 中不显示光标

    我的应用程序中有一个 EditText 它仅接收来自我放置在屏幕上的按钮的输入 为了避免出现软键盘 我有一个自定义的 EditText 类 如下所示 public class CustomEditText extends EditText
  • “不为空”和“不为空”有什么区别

    SELECT id FROM customers WHERE type IS NOT Null Versus SELECT id FROM customers WHERE NOT type IS NULL 上述任何一个返回的数据都将完全相同
  • sp_getapplock 无事务

    我正在实现内部没有事务的存储过程 事实上 它会 但仅限于特定地点 以将时间减少到最少 存储过程的本质是我一次只想运行一个 我尝试使用 sp getapplock 但很快发现它需要在事务内部 是否有其他选择可以在整个过程上锁定但不将其包装到事
  • 没有为类型“QuerySnapshot”定义 getter“文档”

    尝试从 Firestore 实时数据库访问数据 但我一直收到此消息和其他几条消息 在这种情况下我该如何访问数据 先感谢您 class HomePage extends StatefulWidget override HomePageStat
  • 如何在不单击表单的情况下触发表单上的默认按钮(winforms)?

    我有两个文本框 一个用于登录 ID 另一个用于密码 并且有一个按钮 提交 我需要一个获取登录 ID 和密码值的事件 即 无需单击鼠标 我需要调用此事件 只需按键盘上的 输入 即可 有谁能够帮助我 提前致谢 斯里尼 将按钮设置为表单上的接受按
  • 格式化 NumPy 数组

    我要这个 SP 1 2 3 1 1 000000e 00 2 000000e 00 3 000000e 00 2 1 630000e 01 1 990000e 01 1 840000e 01 3 1 630000e 01 1 990000e
  • 带有运行时构造函数参数的键控委托工厂?

    假设我有以下服务和组件 public interface IService void DoWork public class ServiceA IService private readonly string name public Ser
  • Laravel - 填充数据库中缺失的日期和计数

    我需要根据我收到的日期发送每个日期的观看次数 request 从控制器中的查询中 我获取了如下所示的图表数据 time 2016 05 01 count 2 time 2016 05 02 count 3 time 2016 05 03 c
  • const 键和非 const 键有什么区别?

    下面两行有什么区别 map
  • 使用 Cordova 插件拍摄全景图像?

    是否可以使用某些 cordova 插件 在 X 轴和 Y 轴 拍摄全景图像 感谢您的任何建议 相机插件启动设备的相机应用程序 所以我想在带有全景相机应用程序的手机上 您可以从科尔多瓦应用程序中拍摄全景图 用户必须手动选择该功能 否则你必须要
  • C# .NET 应用程序设置和升级

    我使用 Settings Default MySettingName 和 Settings Default Save 来保存和加载设置 当我更改版本号时 如何从旧版本获取设置并将其应用到新版本 我只是不太明白 Settings Upgrad
  • 使用 JavaScript 显示/隐藏图像

    我有一个 HTML 页面 其中包含一个通过 CSS 设置为不可见的图像visibility hidden 我想创建一个名为 显示图像 的链接 这样当我单击它时 就会出现图像 现在 我不知道如何建立这样的链接 因为通常与 a href 链接到
  • ChatBot 在 Web 模拟器中无法运行,但在本地 Bot Framework 模拟器中运行良好

    我开发了与 SharePoint On Premise 集成的 ChatBot 当我在模拟器中调试 ChatBot 时 它可以工作 但是 当我使用 DirectLine 在 Azure 中的 Web 模拟器和公司网站托管的网站上进行调试时