【问题标题】:Null botId - Microsoft Bot Framework SDK V3Null botId - Microsoft Bot Framework SDK V3
【发布时间】:2016-09-20 23:22:45
【问题描述】:

我正在尝试在本地运行 EchoBot example of the MS Bot Framework,跟随 updates to SDK V3,但无法创建对话框。

打电话给

Conversation.SendAsync(activity, () => EchoChainDialog.dialog);

我得到的错误是

System.ArgumentNullException occurred
  HResult=-2147467261
  Message=Value cannot be null.
Parameter name: botId
  ParamName=botId
  Source=Microsoft.Bot.Builder
  StackTrace:
       at Microsoft.Bot.Builder.Internals.Fibers.SetField.CheckNull[T](String name, T value)
  InnerException: 

我想知道 null botID 是什么意思。我在本地运行应用程序,遵循Getting Started tutorial。它说不需要为机器人提供 AppID,我相当肯定 AppId 和 botId 不是一回事。我似乎找不到太多关于这个 botId 字段是什么的文档。

还有其他人遇到过这个问题吗?解决这个问题的唯一方法是注册机器人并提供 AppId 吗?

【问题讨论】:

    标签: c# botframework


    【解决方案1】:

    显然你可以做到

    ConfigurationManager.AppSettings["BotId"] = "test";
    

    它会起作用的。我不确定应该设置什么“BotId”字段,但是如果您遇到此问题并且只需要在本地进行测试,则在调用 MessagesController.cs 之前添加此行 Conversation.SendAsync 是一种解决方法。

    【讨论】:

      【解决方案2】:

      需要在 web.config 或 app.config 中

      <appSettings>
        <add key="BotId" value="[Your Id]" />
        <add key="MicrosoftAppId" value="[The app id]" />
        <add key="MicrosoftAppPassword" value="[The client secret]" />
      </appSettings>
      

      BotBuilder 中的 autofac 魔法从那里获取它,并且从那里获取。

      因为想使用新的json风格配置,我尝试了其他方式设置,但是目前还没有成功。我想一定有某种方法,可以实现一个 IBotIdResolver,我试过了,但它似乎需要更多的自定义,我无法让 Conversation 类接我的实现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-23
        • 2023-03-11
        • 1970-01-01
        • 2023-04-08
        • 2018-11-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多