在MS CRM 2011中调试插件Plugin是非常繁琐的一件事情——每次编译完成后,需要使用插件注册工具,更新Assembly,而后,将Debug目录中的pdb文件拷贝到%CRM安装目录%\Server\Bin\Assembly中,而后,重启3W服务,再利用Visual Studio .net 2010的调试à“附加到进程”操作,附加到CRM站点对应的w3wp.exe进程中……。从上面的描述,就可以看出,是多么的麻烦,而且,在运行到断点位置时,w3wp.exe进程会由于调试处于中断的状态中,换言之,由于插件的调试,造成其他的对crm的操作,无论是来自其他插件的操作还是浏览器界面的操作,都将被暂停,而无法得到CRM平台的响应。
有鉴于此,开发了MS CRM 2011的插件调试工具。
该调试工具的使用方式如下。
1. 首先通过插件注册工具,注册Assembly——PluginProxy.dll;
2. 其次,注册相应的Step,具体注册哪个Step,需要根据自己的情况确定,本文所做演示是调试Account实体的PreCreate插件,那么注册Step的效果如下图所示;
3. 再次,在CRM服务器的文件系统中,打开%CRM安装目录%\Server\Bin\Assembly目录,在其中创建名为Logs的目录,右键点击此目录,在快捷菜单中选择“属性”,系统弹出属性对话框,在其中,点击“编辑”按钮,系统弹出权限对话框,根据MS CRM2011对应的程序池的运行账号,选择相应的用户名或者组名,我的CRM应用程序池的运行账号是Network Service,所以我选择“Network Service”,然后,在权限列表中,勾选“写入”后面的复选框。点击两次“确定”按钮,关闭两个对话框。如下图所示。
4. 打开浏览器,完成触发插件执行的操作。本例中,是创建一个客户记录;
5. 操作完成后,在服务器的文件系统中,刚刚创建的Logs文件夹中,会存在一个对应于刚刚操作的日志文件,其格式为xml。如下图所示;
6. 将该文件拷贝到本地;
7. 使用visual studio .net 2010打开插件的项目,打开该项目的属性。点击“调试”,在启动操作部分的“启动外部程序”,点击该文本框右侧的浏览按钮,找到本文档提供的“DebuggerTool.exe”。如下图所示。
8. 编辑“运行”。会启动该程序,效果如下图;
9. 在PluginFile中,需要选择当前项目生成的插件dll文件;
10. 在Plugin Classes中,选择需要调试的Plugin类;
11. 在LogFile中,选择步骤6拷贝过来的xml文件;
12. 点击“run”按钮,开始运行,即可开始调试