Pergunta

Tenho configurado um novo VM (MS Virtual Server executando o Windows Server 2003) como uma cópia de uma VM servidor de hospedagem BizTalk existente de 2006. Eu tenho que correr em um problema com o processamento BRE. A política é implantado e vocabulário publicado exatamente como na VM de trabalho.

Uma orquestração chama um componente auxiliar que por sua vez faz uso dos componentes BRE. A última linha no componente auxiliar que parece executar é:

Policy workflowPolicy = new Policy(policyName)

Eu ter colado o rastreamento de pilha do log de eventos a seguir:

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&

Parece que Microsoft.RuleEngine.Configuration.GetInt32 está sendo passado um valor que não pode ser convertido para um Int32?

Eu tentei un-configuração / re-configurar o BRE. Tanto quanto eu posso dizer tudo sobre o novo servidor está configurado exatamente de acordo com o servidor de trabalho.

Qualquer ajuda, receber com gratidão - Estive preso com isso o dia todo

Foi útil?

Solução 2

Obrigado por sua resposta Martin. Eu já corrigiu o problema. O problema foi erro do usuário (meu) em fazer uma alteração no registro. Tive que criar um ambiente reg como segue

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

, a fim de permitir que o BRE para fazer uso de métodos estáticos. Isto é descrito em: http://technet.microsoft.com/en-us /library/dd298814.aspx

Embora eu tinha feito a adição ao configurar o servidor, eu tinha usado inadvertidamente uma string em vez de um DWORD. Uma vez que este custo me mais de um dia para descobrir - Eu não vou estar fazendo o mesmo erro em breve

Outras dicas

Se um seguir a um rastreamento de pilha podia ler "cache" e "tracking". Gostaria de tentar reiniciar o anfitrião e desmarque qualquer regra de rastreamento no HAT.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top