Dynamics CRM: 深度解析本地部署(On-premise)服务器中Sandbox, Asynchronous服务对插件Plug-in和工作流Workflow的影响

其实我自己平时调试插件很少使用远程调试的这种方式, 因为他会把整个服务都占上, 如果此系统只有你一个人使用还好, 如果还有其他人的话,可能导致其他人使用系统直接卡死的情况发生.

但我们如果真的选择远程调试的这种方式, 有些时候我们需要附加Microsoft.Crm.Sandbox.WorkerProcess.exe这个进程, 而这个进程又和我之前说的Sandbox服务的Microsoft.Crm.Sandbox.HostService.exe很像, 所以我就突然有一种想法, 想看看这个Sandbox服务对于插件有什么影响,so 就做了以下无聊的测试..别说,还真有些收获, 大家可以看看下面的两个表还有总结:

 

插件类型同步/异步如果停掉sandbox服务如果停掉async服务
Sandbox同步Sync

运行插件会直接报错,类似于下面的错误:

The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running.

没影响
异步Async虽然页面上不会报错, 但是异步的插件也会不好使了, 并且恢复之后, 之前的没有运行的也不会再运行了插件就不会运行了, 但只要将这个服务再次打开,就会自动将之前停掉的服务后没有运行的插件操作运行完成
None同步Sync虽然页面上不会报错, 但是插件也不好使了, 而且这个时候我发现, 当你在停掉之后把sandbox服务再起来后, 也不好使, 必须要把那个插件先disable, 然后再enable才可用, 这点大家需要注意页面不会报错, 但是插件也不好使了, 和停掉sandbox服务一样, 将服务再起来后, 也不好使, 必须要把那个插件先disable, 然后再enable才可用
异步Async

插件可以正常运行,没有受到影响,但是我在Plug-in Trace Log中找到运行的这条日志, 里面显示: Unhandled Exception: System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.tcp://redacted/CrmSandboxHost that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. 并且我在平时记录log的Message Block字段中, 也没有任何log生成,虽然执行成功了.所以我大胆猜测插件往Plug-in Trace Log中记录日志是依赖于sandbox这个服务的

页面不会报错, 但插件不运行了. 但只要一打开服务,就会自动将之前停掉的服务后没有运行的插件操作运行完成
工作流(Workflow)类型如果停掉sandbox服务如果停掉async服务
Real-time(实时)

它依赖于sandbox服务, 所以页面将会直接报错:

The plug-in execution failed because no Sandbox Hosts are currently available. Please check that you have a Sandbox server configured and that it is running. System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at net.tcp://<host name>/CrmSandboxHost that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

workflow里不会报错, 并且此worflow也不会运行, 但将async服务起来后,之前没运行的workflow,会继续运行
Background

workflow里会报错, 但它也不会运行了, 会在worflow中报下图的错误. 将服务起来后,之前没运行的workflow,会继续运行

worflow不会运行, 但将async服务起来后,之前没运行的workflow,会继续运行

总结:

1. 在本地部署中, 有的时候因为服务器重启可能会导致服务没有自动起来,这个时候可能会直接在系统页面上报错, 而有的时候可能就会直接导致我们的插件或者workflow不运行, 这个时候如果我们没有检查出来问题原因的话,不妨看看服务器上这些服务是否和运行正常.

2. 使用插件或者workflow尽量使用异步, 这样机会减轻系统的压力,并且如果真的遇到服务被停掉的情况, 通常情况下异步的操作在服务起来后会之前没完成的操作, 但同步的就不会.

3. 即使你使用的插件或者workflow是异步的,但如果sandbox这个服务出问题, 是仍然会对你的操作产生影响的.

参考:

Dynamics CRM: 本地部署的服务器中, Sandbox, Unzip, VSS, Asynchronous还有Monitor服务的作用_Stone-hdj的博客-CSDN博客https://blog.csdn.net/djstone/article/details/122419967?spm=1001.2014.3001.5501

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stone-hdj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值