注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

微软MVP罗勇的博客

微软MVP罗勇,www.luoyong.me

 
 
 

日志

 
 

本地部署的Dynamics 365中自定义工作流活动的调试  

2017-03-26 04:24:43|  分类: CRM流程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复248或者20170326可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong.me 。
我前面的博文 Dynamics CRM插件开发教程之:插件的调试 讲解过同步插件的调试,如果是异步执行的自定义工作流活动呢?如何调试,SDK中有个章节 Debug a custom workflow activity 有简单说明,翻译过来就是需要把自定义工作流活动产生的pbd文件拷贝到CRM后端服务器CRM软件安装目录的\server\bin\assembly文件夹中,还需要把自定义工作流活动注册到磁盘上,而不是推荐使用的数据库中,然后将调试的时候将附加到 CrmAsyncService.exe 进程上,其余的就是参考插件的调试章节Debug a plug-In。有点麻烦,也没有具体例子,今天我尝试使用Visual Studio的远程工具(remote tools)来调试自定义工作流活动。因为在服务器上再装一套开发工具麻烦,很多时候也不允许,我这里就尝试下服务器上不安装开发工具的方法。
首先需要下载Visual Studio的远程工具,下载地址在 Remote Debugging ,选择自己适合自己版本的Visual Studio的远程工具,我这里使用的Visual Studio版本是Visual Studio Professional 2015 Update 3,如下
Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客

我安装的是64位版本,安装完毕后可以在 C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE\Remote Debugger\x64 中找到 msvsmon.exe 这个文件,以管理员身份运行它,弹出如下提示:
Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客
 
因为我使用的Windows防火墙,所以点击 Configure remote debugging 就会自动配置好,默认情况下它使用的端口是 4020 端口,打开这个软件后可以通过 Tools/Options可以知道,运行及查看端口界面如下:
Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客

因为我使用的是Azure上的虚拟机,所以还需要在虚拟机的Endpoints那里设置下才行,登录 https://portal.azure.com ,找到对应的虚拟机的的Endpoints,点击左上角的 Add。
Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客
 
 增加的端口对应如下,保存后要等到Azure Portal消息提示成功才会生效。
Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客

进行调试之前先设置断点,然后 调试 > 附加到进程
Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客
  
在限定符那里输入服务器的IP和端口,我这里是 207.46.150.173:4020,然后选择显示所有用户进程,一般会弹出对话框让你输入用户名和密码,默认情况下是服务器的管理员角色的账号才能调试,我这里使用crmadmin@luoyong.me这个管理员登录。因为我的自定义工作流活动程序集是注册到None中(不是注册到沙盒中)的,所以我使用Visual Studio调试的时候附加到的进程是 CrmAsyncService.exe ,如果有多个这个进程,请都选择,然后点击 附加 按钮。
本地部署的Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客
 
然后我开始进行测试,做一个触发这个自定义工作流活动的操作,要等一会儿,因为是异步工作流嘛,就会看到进入调试了,如下:
本地部署的Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客

在测试中发现,如果自定义工作流活动是注册到沙盒中,虽然SDK说是要附加到 Microsoft.Crm.Sandbox.WorkerProcess.exe 进程上,但是我尝试过很多次没有效果。那怎么办?好办呀,先更改为注册到None上,调试完毕后再改回来为注册到沙盒中。如果更改为注册到None中就不报错,注册到沙盒中运行就报错,那一般是代码中使用的资源超越了许可所致。
当然,如果是Azure的虚拟机,使用Visual Studio 2017的服务器资源管理器来做也很方便,按照 Debugging Azure virtual machines 进行配置,在Visual Studio中打开 视图 > 服务器资源管理器,连接到我的Azure账号,然后展开虚拟机节点,右击要进行远程调试的虚拟机,选择Enable Debugging,确认后就会安装VSvNextDebugger安装到虚拟机上。
本地部署的Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客
 
这时候再右击虚拟机就会出现Attach Debugger,点击这个菜单项,其余的操作和Visual Studio的远程工具操作非常类似。
本地部署的Dynamics 365中自定义工作流活动的调试 - 罗勇 - 微软MVP罗勇的博客

大家可能会问,如果是CRM Online的话,你就没有办法使用上面的方法来调试自定义工作流活动了,怎么办?可以参考文章 Debug custom workflow in CRM ,可能需要翻墙才能看到,呵呵,你懂的。主要内容是使用插件注册工具的Profile Workflows进行调试,亲测可用。
素格格新疆特产店--做新疆特产的搬运工。
本店由博主的新疆老婆开设,搬运各种上等的新疆特产,是自用,送礼,年货,孝敬长辈特别是(岳)父母的首选。
Dynamics CRM中的地址知多D? - 罗勇 - 微软MVP-罗勇的博客
 
  评论这张
 
阅读(78)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017