처리기 (로컬 푸른 노동자)에 Bus.SendLocal을 만들려고 노력 트랜잭션의 상태에 대해 유효하지 않습니다작업은 내가 다음 코드가
class ProcessHandler : IHandleMessages<StartProcess>
{
public IBus Bus { get; set; }
public void Handle(StartProcess message)
{
//some long living process (over 3 min)
Bus.SendLocal(new SameMessage()); //get error here
}
}
오류 메시지 : 작업이 유효하지 않습니다 트랜잭션의 상태.
스택 트레이스 :
System.Transactions.Transaction.EnlistVolatile (IEnlistmentNotification enlistmentNotification, EnlistmentOptions enlistmentOptions)에서 System.Transactions.TransactionState.EnlistVolatile (InternalTransaction의 TX, IEnlistmentNotification enlistmentNotification, EnlistmentOptions의 enlistmentOptions 트랜잭션 atomicTransaction) 에서* C : \ BuildAgent \ work \ ba77a0c29cee2af1 \ src \ NServiceBus.Azure.Transports.WindowsAzureStorageQueues \ AzureMessageQueueSender.Send (TransportMessage 메시지, 주소 주소) : NServiceBus.Azure.Transports.WindowsAzureStorageQueues.AzureMessageQueueSender.cs : 51 행의 NServiceBus.Unicast에서 .UnicastBus.SendMessage (List 01 사전에 23,149,731,743,2) 라인 NServiceBus.Unicast.HandlerInvocationCache.InvokeHandle (Object 핸들러 오브젝트 메시지)에서 0 : 라인 NServiceBus.Pipeline.Behaviors.LoadedMessageHandlers.b_ 2에서 0은 (handlerInstance에서 오브젝트 메시지) 개체 : 에 NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.DispatchMessageToHandlersBasedOnType (IBuilder 빌더의 LogicalMessage toHandle, LoadedMessageHandlers의 loadedHandlers, BehaviorContext 컨텍스트)에 라인 0 : 0에서 라인 NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : line 0 NServiceBus.Pipeline.BehaviorChain.InvokeNext (BehaviorContext context) : 행 0 at NServiceBus.Pipeline.BehaviorChain. <> C _DisplayClass1.b_의 0 (0) 0 선에서 NServiceBus.Sagas.SagaPersistenceBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : 선 0 NServiceBus.Pipeline.BehaviorChain.InvokeNext (BehaviorContext 컨텍스트)에 : line 0 NServiceBus.Pipeline.BehaviorChain에 있습니다. <> C _DisplayClass1.b_의 0 (0) 0 선에서 NServiceBus.Pipeline.Behaviors.LoadHandlersBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : 선 NServiceBus.Pipeline.BehaviorChain.InvokeNext에서 0 (BehaviorContext 컨텍스트) in : line 0 at NServiceBus.Pipeline.BehaviorChain. <> C _DisplayClass1.b_의 0 (0) 0 선에서 NServiceBus.Pipeline.Behaviors.CallbackInvocationBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : 선 NServiceBus.Pipeline.BehaviorChain.InvokeNext에서 0 (BehaviorContext 컨텍스트) in : line 0 at NServiceBus.Pipeline.BehaviorChain. <> C _DisplayClass1.b_의 0 (0) 0 선에서 NServiceBus.Pipeline.Behaviors.ApplyIncomingMessageMutatorsBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : 선 NServiceBus.Pipeline.BehaviorChain.InvokeNext에서 0 (BehaviorContext 컨텍스트) in : line 0 at NServiceBus.Pipeline.BehaviorChain. <> C _DisplayClass1.b_의 0 (0) 0 선에서 NServiceBus.Pipeline.Behaviors.ExtractLogicalMessagesBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : 선 NServiceBus.Pipeline.BehaviorChain.InvokeNext에서 0 (BehaviorContext 컨텍스트) in : line 0 at NServiceBus.Pipeline.BehaviorChain. <> c _DisplayClass1.b_ 0() in : 0 at NServiceBus.Pipeline.Behaviors.RaiseMessageReceivedBehavior.Invoke (BehaviorContext context, 다음 동작) in line 0 at NServiceBus.Pipeline.BelectionChain.InvokeNext (BehaviorContext context) : 행 0 at NServiceBus.Pipeline.BehaviorChain. <> C _DisplayClass1.b_의 0 (0) 0 선에서 NServiceBus.Pipeline.Behaviors.ApplyIncomingTransportMessageMutatorsBehavior.Invoke (BehaviorContext 콘텍스트 액션 옆)에서 : 선 NServiceBus.Pipeline.BehaviorChain.InvokeNext에서 0 (BehaviorContext 컨텍스트) in : line 0 at NServiceBus.Pipeline.BehaviorChain. 에서 <> C _DisplayClass1.b__0() : 라인 NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke에서 0 (BehaviorContext 컨텍스트, 액션 옆)에서는 : 라인 0 *
은 어떤 사람이 나를 도와 드릴까요? 감사합니다.