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 的安裝目錄,就能夠直接運行遠程調試工具而不用下載。

 

若是有更好的調試方式,歡迎分享。

相關文章
相關標籤/搜索