2009-05-08 10 views
1

Ich habe eine neue VM (MS Virtual Server mit Windows Server 2003) als Kopie einer vorhandenen VM konfiguriert, die BizTalk Server 2006 hostet. Ich habe ein Problem mit der BRE-Verarbeitung festgestellt. Die Richtlinie wird bereitgestellt und das Vokabular genau wie auf der Arbeits-VM veröffentlicht.BizTalk BRE InvalidCastException

Eine Orchestrierung ruft eine Hilfskomponente auf, die wiederum die BRE-Komponenten verwendet. Die letzte Zeile in der Helfer-Komponente, die auszuführen scheint, ist:

Policy workflowPolicy = new Policy(policyName) 

ich den Stack-Trace aus dem Ereignisprotokoll unten eingefügt haben:

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& 

Es sieht aus wie Microsoft.RuleEngine.Configuration.GetInt32 ist Wird ein Wert übergeben, der nicht in Int32 umgewandelt werden kann?

Ich habe versucht, das BRE zu deaktivieren/neu zu konfigurieren. Soweit ich das beurteilen kann, ist alles auf dem neuen Server genau so konfiguriert wie auf dem funktionierenden Server.

Jede Hilfe, dankbar zu erhalten - ich habe den ganzen Tag mit festgefahren!

Antwort

1

Vielen Dank für Ihre Antwort Martin. Ich habe das Problem jetzt behoben. Das Problem war Benutzerfehler (meins) bei der Änderung der Registrierung. Ich musste eine reg-Einstellung wie folgt

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

erstellen, um das BRE zu ermöglichen, statische Methoden zu verwenden. Dies ist beschrieben unter: http://technet.microsoft.com/en-us/library/dd298814.aspx

Obwohl ich den Zusatz bei der Konfiguration des Servers gemacht hatte, hatte ich versehentlich eine Zeichenfolge anstelle eines DWORD verwendet. Da mich das über einen Tag kostet, werde ich den Fehler nicht gleich machen!

1

Wenn man dem Stack-Trace folgt, könnte man "Cache" und "Tracking" lesen. Ich würde versuchen, den Host neu zu starten und jedes Regel-Tracking in HAT zu deaktivieren.

+0

Konventionell sollten Signaturen bei Stack Overflow nicht verwendet werden. Weitere Informationen finden Sie unter [Sind Taglines/Signaturen nicht erlaubt?] (Http://meta.stackexchange.com/questions/5029/are-taglines-signatures-disallowed). –