BizTalk BRE-.Net类中的方法在业务流程调用规则形状中不起作用

BizTalk BRE-.Net类中的方法在业务流程调用规则形状中不起作用,biztalk,business-rules,biztalk-2013,Biztalk,Business Rules,Biztalk 2013,我正在尝试使用一个外部类库方法调用AddValidationErrors来消除Business Rule Composer中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在Business Rule Composer中测试我的策略时,这是有效的。但当我尝试编排时,它不会触发规则。有人能帮我吗。下面是我的验证错误代码 public void AddValidationError(TypedXmlDocument activeDoc, stri

我正在尝试使用一个外部类库方法调用AddValidationErrors来消除Business Rule Composer中的数据验证错误。我创建了一个FactCreator类,它也实现了IFactCreator接口。当我尝试在Business Rule Composer中测试我的策略时,这是有效的。但当我尝试编排时,它不会触发规则。有人能帮我吗。下面是我的验证错误代码

public void AddValidationError(TypedXmlDocument activeDoc, string err)
{
   XmlDocument doc = activeDoc.Document.OwnerDocument;
   XmlNode errorRoot = doc.SelectSingleNode("//ValidationErrors");
   XmlElement newError = doc.CreateElement("Error");
   newError.InnerText = err;
   errorRoot.AppendChild(newError);
}
FactCreator类:

    private object[] objs;

    public FactCreator()
    {

    }
    public object[] CreateFacts(RuleSetInfo ruleSetInfo)
    {
        objs = new object[1];
        objs[0] = new ValidationErrors.ValidationErrors();
        return (objs);
    }

    public Type[] GetFactTypes(RuleSetInfo ruleSetInfo)
    {
        return null;
    }

您是否启用了对.NET的BRE静态支持

要启用对静态.Net方法的BRE支持这些方法,请将名为
StaticSupport
REG\u DWORD
键(值为
1
)添加到以下注册表路径:

32位窗口

HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0\
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\BusinessRules\3.0\
64位窗口

HKEY_LOCAL_MACHINE\Software\Microsoft\BusinessRules\3.0\
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\BusinessRules\3.0\
这是一项一次性活动

以上信息来自博客

MSDN提取物添加:

另一个选项是将StaticSupport放在BTNTsvc[64].exe.config中 文件,因为此处的任何设置都会覆盖注册表中的内容。进一步的 人们还可以提出这样的论点,即该选项更可取,因为它 将默认行为中的更改仅隔离为BizTalk,而 注册表设置是操作系统的全局设置


MSDN声明也可以通过配置文件进行更新:。我将更新我的答案。这是一次性活动吗?我更新了我的答案以反映更改BTSNTSvc.exe.config或BTSNTSvc64.exe.config的可能性。我已完成第二个选项。但是仍然是相同的输出,如果不更新注册表,我从未有过这样的运气。更新后重新启动计算机。每台服务器应该是一次性的,并且可以在powershell或.reg文件中编写脚本。