Dynamics CRM 远程调试自定义工做流活动

据我所知,Dynamics CRM工做流的调试方式有几种:服务器

Throw抛出异常错误工具

使用TracingService插件

服务器附加进程调试3d

对于插件有PluginProflier调试

 

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

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

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

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

 

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

工具准备:

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 的安装目录,就能够直接运行远程调试工具而不用下载。

 

若是有更好的调试方式,欢迎分享。

相关文章
相关标签/搜索