zoukankan      html  css  js  c++  java
  • Dynamics CRM 远程调试自定义工作流活动

    据我所知,Dynamics CRM工作流的调试方式有几种:

    Throw抛出异常错误

    使用TracingService

    服务器附加进程调试

    对于插件有PluginProflier

    以上几中方式各有优缺点。

    抛出异常错误:快速查看少量对象值,对于多个对象或调试条件分支,需要不断地试错。

    使用TracingService:可记录执行过程,需要开启日志监控,不能即时跟踪对象。

    服务器附加进程:可即时跟踪对象,需要服务器权限并登录服务器。

    下面记录下使用本地远程调试的过程

    工具准备:

    Visual Studio 2017

    Visual Studio 2017 远程工具

    工具下载地址:https://www.visualstudio.com/zh-hans/downloads/

    首先,我这里使用SDK的Sample来创建一个自定义工作流活动,记得程序集要签名

    然后使用插件注册工具,注册自定义工作流活动

    注册类型这里我选择Sandbox

    接着在CRM里面自定义一个工作流,在创建完客户之后执行此工作流。

    接下来需要在远程服务器运行RemoteDebugger,下载安装完后,在开始里搜索

    打开Remote Debugger

    这时就可以在客户机使用VisualStudio 附加远程进程了。

    打开前面创建的自定义工作流活动项目CustomWFActivity,选择VisualStudio菜单-》调试-》附加到进程,点击查找

    弹出防火墙提示,点击允许访问。

    这时可以看到远程服务器名称及IP地址

    点击该服务器,出现选择按钮。

    点击选择,提示输入凭据

    如果选择保存凭据

    则在控制面板用户帐户凭据管理器 会保存用户名和密码,下次就不再需要输入

    输入后,稍等一会就会自动加载远程服务器的进程列表

    因为注册自定义工作流活动时,注册类型是SandBox,所以这里要选择Sandbox进程,Sandbox进程有两个,选择WorkerProcess,然后点击附加。

    附加完进程之后,设置需要调试的断点。

    为了触发工作流,这里我新建一个客户,并保存。

    稍等片刻,Visual Studio 2017就会自动弹出界面并中断程序。

    接下来,就可以监控到程序运行情况了。

    到此,远程调试已经完成,这种调试方式的好处在于即时查看对象值及程序执行情况。

    对于插件的调试也是一样的,只是监控的进程不一样,调试插件监控w3wp进程。

    如果注册时,注册类型不是Sandbox,那就需要附加进程到CrmAsyncService.exe进程,但这里有两个同名进程,而且无法区分哪个是maintenance进程,可以分别尝试或查看服务器端哪个PID是工作进程

    其实,如果服务器能够读取到客户机VisualStudio 的安装目录,就可以直接运行远程调试工具而不用下载。

    如果有更好的调试方式,欢迎分享。

  • 相关阅读:
    深入浅出了解OCR识别票据原理(Applying OCR Technology for Receipt Recognition)
    OCR技术浅探:基于深度学习和语言模型的印刷文字OCR系统
    Python 3.6.4 / win10 使用pip安装keras时遇到依赖的PyYAML安装出错
    简单http代理服务器搭建
    Socket之心跳包实现思路
    设计模式之访问者模式
    设计模式之责任链模式
    设计模式之策略者模式
    C#将.spl剥离成.emf文件格式
    设计模式之状态者模式
  • 原文地址:https://www.cnblogs.com/tcli/p/6661831.html
Copyright © 2011-2022 走看看