zoukankan      html  css  js  c++  java
  • 自定义工作流活动运行产生System.Security.SecurityException

    摘要: 微软动态CRM专家罗勇 ,回复305或者20190224可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。

    最近碰到一个问题,某些自定义工作流活动运行报如下错误,红色部分是参考号,每次都不一样。

    System.Security.SecurityException:Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #*******

    自定义工作流活动一般是注册在沙盒中,在沙盒日志中有错误产生,看到工作流异常终止,看不出什么问题。奇怪的是自定义工作流活动代码非常靠前的获取追踪服务应该打印出的消息没有打印出来。

    ITracingService tracingService = (ITracingService)serviceProvider.GetService(typeof(ITracingService));

    tracingService.Trace("Message from tracing Custom Code Activity..");

    当然后来我们找到原因了,这个报错是代码中用异步POST请求去调用API,这个调用不通产生异常导致的。因为是异步,所以在AsyncService的日志中是可以看到错误的,Unable to connect the remote server.

    那为啥tracingService应该能打印的消息没有打印出来呢?

    原来代码中对这个异步调用API服务用try ... catch ... 包括出来了。如果有异常的话,在异常处理catch部分处理更新记录状态为失败外,再一次使用throw new ex; 的方式将异常抛出来了。

    错就错在这个抛出异常的方法,应该使用建议的抛出异常的方式 throw new InvalidPluginExecutionException(ex.Message)  来抛出异常就好了,这样自定义工作流活动运行异常时,tracingService打印的信息也可以看到了,更加有助于排查问题。

  • 相关阅读:
    Shell编程(/bin/sh和/bin/bash) 迎客
    Ubuntu命令大全 迎客
    一位软件工程师的6年总结(转) 迎客
    Ubuntu中常见特殊符号 迎客
    Nginx 简介 迎客
    IO流File对象功能删除指定目录中的空白目录
    五步让你成为专家级程序员
    关于eclipse 中文注释时中文字体太小的问题解决
    实现一个小小的动态时钟
    深入解析HashMap、HashTable
  • 原文地址:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Custom_Code_Activity_SecurityException.html
Copyright © 2011-2022 走看看