Bot Framework Emulator应用与调试
在《Bot Framework的简单实现》一文中已经实现了Bot Framework的简单应用,可以通过注册自己的了Bot实现与本地IIS下的服务交互。除了这种通过注册Bot的方式来测试外,我们还可以通过Bot Framework Enulator,即Bot模拟器来测试。Bot Framework Emulator的下载地址在这里,下载安装后启动,界面如下。
该模拟器需要以管理员的身份启动。我用的是win10的administrator用户登陆,但怎么启动都失败,后来更改了组策略才正常启动。其方法如下
1 在运行框 里面输入“gpedit.msc”。
2 打开组策略编辑器,计算机配置->windows设置->安全设置->->本地策略->安全选项
3 找到“用于内置管理员账户的管理员批准模式”设置为已禁用。然后重启,就可以了。
如下图
现在我们修改响应的代码。为了能够验证AppID和AppSecret,我们需要在MessagesController.cs的代码中将BotAuthentication加入到类MessagesController的顶部。新的代码如下
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Threading.Tasks;
using System.Web.Http;
using System.Web.Http.Description;
using Microsoft.Bot.Connector;
using Microsoft.Bot.Connector.Utilities;
using Newtonsoft.Json;
namespace BotDemo
{
[BotAuthentication]
public class MessagesController : ApiController
{
/// <summary>
/// POST: api/Messages
/// Receive a message from a user and reply to it
/// </summary>
public async Task<Message> Post([FromBody]Message message)
{
if (message.Type == "Message")
{
// calculate something for us to return
int length = (message.Text ?? string.Empty).Length;
// return our reply to the user
return message.CreateReplyMessage($"You sent '{message.Text}'.Length is {length}");
}
else
{
return HandleSystemMessage(message);
}
}
private Message HandleSystemMessage(Message message)
{
Message reply = null;
reply = message.CreateReplyMessage("您执行了" + message.Type);
reply.Type = message.Type;
return reply;
}
}
}经编译重新发布到IIS下后,我们使用模拟器来发起请求。记得请求的URL中的端口需要改成对就的端口,比如我这里用的是20080端口。
如果需要调试,需要将项目以Debug的形式编辑,然后将Bin下的文件复制到发布的位置,一定记得复制与dll相对应的pdb文件,简单的就全部复制过去即可。
然后在VS中以附加进程的方式来调试,如下图。
IIS是在w3wp.exe下运行的,注意看其后对应的位置是否是所发布的位置,当有多个网站的时候特别要注意。如果没有显示w3wp.exe的,可以勾选上“显示所有用户进程”。
接下来在模拟器发起请求后就可以进入代码调试了,如下图。
这样就实现了bot framework emulator的应用与调试。
转载请注明出处。

浙公网安备 33010602011771号