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

    转载请注明出处。





  • 相关阅读:
    fastcgi(一)
    矩阵旋转运算(一)
    【10.9】multiprocessing多进程编程
    【10.8】多线程和多进程的比较
    【10.7】ThreadPoolExecutor线程池
    【10.6】线程同步--Semaphore 使用以及源码分析
    【10.5】线程同步--conditon 使用以及源码分析
    【10.4】线程同步--Lock、RLock
    【10.3】线程间通信--共享变量和Queue
    【10.2】多线程编程-threading
  • 原文地址:https://www.cnblogs.com/sparkleDai/p/7604935.html
Copyright © 2020-2023  润新知