據我所知,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 的安裝目錄,就能夠直接運行遠程調試工具而不用下載。
若是有更好的調試方式,歡迎分享。