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的应用与调试。

转载请注明出处。





posted @ 2016-04-21 10:09  _学而时习之  阅读(313)  评论(0编辑  收藏  举报