1

我已将新 VM(运行 Windows Server 2003 的 MS 虚拟服务器)配置为托管 BizTalk Server 2006 的现有 VM 的副本。我遇到了 BRE 处理问题。策略的部署和词汇表的发布与工作虚拟机上的完全一样。

一个编排调用一个辅助组件,该组件又使用 BRE 组件。辅助组件中似乎执行的最后一行是:

Policy workflowPolicy = new Policy(policyName)

我从下面的事件日志中粘贴了堆栈跟踪:

Exception type: InvalidCastException
Source: Microsoft.RuleEngine
Target Site: Int32 GetInt32(System.String, Int32)
The following is a stack trace that identifies the location where the exception occured
   at Microsoft.RuleEngine.Configuration.GetInt32(String key, Int32 defaultValue)
   at Microsoft.RuleEngine.ReteTranslator.RuleSetToReteTranslatorImpl.Translate(RuleSet ruleset, Int32 duration)
   at Microsoft.RuleEngine.ReteTranslator.RuleSetToReteTranslator.Translate(RuleSet ruleset, Int32 duration)
   at Microsoft.RuleEngine.RuleEngine..ctor(RuleSet ruleSet, Boolean doOptimizations)
   at Microsoft.RuleEngine.RuleEngineCache.Allocate(String rulesetName, Int32 majorRevision, Int32 minorRevision, TrackingConfiguration& trackingConfig)
   at Microsoft.RuleEngine.RuleEngineCache.Allocate(String rulesetName, TrackingConfiguration& trackingConfig)
   at Microsoft.RuleEngine.Policy..ctor(String policyName)
   at Tesco.BRE.Services.PolicyServices.Direct.OrderWorkflowServices.Commands.GetNextTaskList.Execute()
   at Tesco.DataSources.Integration.Common.CommandBase.CommandDecorators.CommandLoggingDecorator`1.Execute()
   at Tesco.DataSources.Integration.Common.CommandBase.CommandUtilities.GetCommandResponse[T](CommandBase`1 command)
   at Tesco.BRE.Services.PolicyServices.Direct.OrderWorkflowServices.OrderWorkflowOperations.GetNextTaskList(String currentTaskName, String currentTaskStatus, XmlDocument order)
   at Tesco.Direct.OrderManagement.Orchestrations.FollowTaskResult.segment2(StopConditions stopOn)
   at Microsoft.XLANGs.Core.SegmentScheduler.RunASegment(Segment s, StopConditions stopCond, Exception&

看起来 Microsoft.RuleEngine.Configuration.GetInt32 正在传递一个无法转换为 Int32 的值?

我试过取消配置/重新配置 BRE。据我所知,新服务器上的所有内容都完全按照工作服务器进行配置。

任何帮助,感激地接受 - 我整天都被这个困扰!

4

2 回答 2

1

如果遵循堆栈跟踪,则可以读取“缓存”和“跟踪”。我会尝试重新启动主机并取消选中 HAT 中的任何规则跟踪。

于 2009-05-08T21:48:20.960 回答
1

感谢您的回复马丁。我现在已经解决了这个问题。问题是进行注册表更改时的用户错误(我的)。我必须按如下方式创建一个 reg 设置

HKLM\SOFTWARE\Microsoft\BusinessRules\3.0\StaticSupport (DWORD), value 2

为了使 BRE 能够使用静态方法。这在以下位置进行了描述:http ://technet.microsoft.com/en-us/library/dd298814.aspx

尽管我在配置服务器时进行了添加,但我无意中使用了字符串而不是 dword。因为这花了我一天多的时间才弄清楚——我不会很快犯同样的错误!

于 2009-05-09T19:27:56.513 回答