Botframework Bot Framework V3的最新项目模板和模拟器引发500个内部服务器错误

Botframework Bot Framework V3的最新项目模板和模拟器引发500个内部服务器错误,botframework,Botframework,我使用最新的Bot应用程序模板()创建了一个项目 我确保按照入门页面()中的确切步骤安装了Visual Studio 2015(社区版)和nuget软件包的最新更新 由于我正在本地测试它,所以我也遵循了以下步骤: 在使用本地运行的bot的仿真器时,需要 bot的Url设置为localhost:从上一个 步 注意:需要将路径“/api/messages”添加到您的URL 当使用Bot应用程序模板时。清空MicrosoftAppId 字段清空MicrosoftAppPassword字段 在VS 20

我使用最新的Bot应用程序模板()创建了一个项目

我确保按照入门页面()中的确切步骤安装了Visual Studio 2015(社区版)和nuget软件包的最新更新

由于我正在本地测试它,所以我也遵循了以下步骤:

在使用本地运行的bot的仿真器时,需要

bot的Url设置为localhost:从上一个 步 注意:需要将路径“/api/messages”添加到您的URL 当使用Bot应用程序模板时。清空MicrosoftAppId 字段清空MicrosoftAppPassword字段

在VS 2015中运行Bot应用程序项目后,我对最新的emulator()进行了一次非常基本的测试。当我在仿真器内发送“键入”活动时,我收到“500内部服务器错误{”消息:“发生了错误。”}

但是,当我在BotAuthentication注释上放置注释时

//[BotAuthentication]
在仿真器内发送“键入”活动将发送“200OK”响应。不幸的是,当我在emulator中键入类似“Hello”的单词时,我得到了“500内部服务器错误{”消息:“发生了错误。”}

知道为什么会这样吗

请注意,除了在BotAuthentication注释中添加注释外,我没有对默认项目进行任何代码更改

模拟器的版本是3.0.0.54

更新: 在模拟器显示“500内部服务器错误{”消息“:“发生错误”}后,我在VS输出窗口的mscorlib.dll中看到抛出一个异常:“System.MissingMethodException”

更新


因此,我在另一台机器(Windows 8.1)中尝试了精确的设置,因为我使用的机器是Win10评估。猜猜怎么着,它就像一个符咒……所以我猜这是操作系统的问题,或者GAC搞砸了?

检查您在以下NuGet软件包中使用的版本:

  • Microsoft.Rest.ClientRuntime-1.8.2
  • Json-8.0.3
  • System.IdentityModel.Tokens.Jwt-4.0.2.206221351
当我将其中任何一个升级到更高版本时,在emulator中运行时会看到一个500错误

我还必须将我的bot的安全信息添加到Web.config

<add key="BotId" value="<put your BotId here>" />
<add key="MicrosoftAppId" value="<put your AppId here>" />
<add key="MicrosoftAppPassword" value="<put your AppPassword here>" />


您需要将安全信息添加到channel emulator中。

检查以下NuGet软件包使用的版本:

  • Microsoft.Rest.ClientRuntime-1.8.2
  • Json-8.0.3
  • System.IdentityModel.Tokens.Jwt-4.0.2.206221351
当我将其中任何一个升级到更高版本时,在emulator中运行时会看到一个500错误

我还必须将我的bot的安全信息添加到Web.config

<add key="BotId" value="<put your BotId here>" />
<add key="MicrosoftAppId" value="<put your AppId here>" />
<add key="MicrosoftAppPassword" value="<put your AppPassword here>" />


您需要将安全信息添加到通道仿真器。

我遇到了同样的问题,我通过在
Post
方法中放置一个
try-Catch
块来解决这个问题。实际错误弹出

解析机器人Id时出错

我只需向我的bot添加一个web配置条目,如下所示,它就开始工作了

 <add key="BotId" value="your app id"></add>

我遇到了同样的问题,我通过在
Post
方法中放置一个
try-Catch
块来解决这个问题。实际错误弹出

解析机器人Id时出错

我只需向我的bot添加一个web配置条目,如下所示,它就开始工作了

 <add key="BotId" value="your app id"></add>


谢谢,但默认情况下,当您在VSI中创建机器人应用程序项目时,您需要将您的BotId、MicrosoftAppId和MicrosoftAppPassword以及emulator添加到这些设置中。同样,正如我在帖子中提到的,由于我在本地测试,emulator中的Url设置为localhost,清空emulatorI中的MicrosoftAppId字段和MicrosoftAppPassword字段最初与emulator存在相同的问题。在v1中,我可以在我的项目和模拟器中保留安全设置为空,但当我切换到v3时,我必须将它们放入以使其工作。您的问题可能与我的不同,但我无法使空设置正常工作。感谢Bryan的输入,但我也忘了提及我也尝试为这些键设置了实际值。我甚至试着使用你注册机器人时得到的值,但没用。也尝试了假值。您是否尝试更改V1代码,使用V3版本的await connector.Conversations.ReplyToActivityAsync(reply)而不是简单的message.CreateReply这是V3项目中的默认代码。这似乎是异步调用失败的地方谢谢,但默认情况下,当你在VSI中创建一个机器人应用程序项目时,你需要将你的BotId、MicrosoftAppId和MicrosoftAppPassword添加到这些设置以及模拟器中,emulator中的Url设置为localhost,清空了emulator中的MicrosoftAppId字段和MicrosoftAppPassword字段。起初,emulator存在相同的问题。在v1中,我可以在我的项目和模拟器中保留安全设置为空,但当我切换到v3时,我必须将它们放入以使其工作。您的问题可能与我的不同,但我无法使空设置正常工作。感谢Bryan的输入,但我也忘了提及我也尝试为这些键设置了实际值。我甚至试着使用你注册机器人时得到的值,但没用。也尝试了假值。您是否尝试更改V1代码,使用V3版本的await connector.Conversations.ReplyToActivityAsync(reply)而不是简单的message.CreateReply这是V3项目中的默认代码。似乎这就是异步调用失败的地方