错误:安全手柄已关闭(NServiceBus/NancyFX)

错误:安全手柄已关闭(NServiceBus/NancyFX),nservicebus,windows-authentication,nancy,Nservicebus,Windows Authentication,Nancy,我已经调试了几天,试图找到根本原因,它似乎是由发送两条消息引起的 public class HomeModule : NancyModule { public HomeModule(IBus bus) { Get["/"] = _ => { bus.Send<Command1>(m => { m.Id = "WHATEVER"; }); return "OK";

我已经调试了几天,试图找到根本原因,它似乎是由发送两条消息引起的

public class HomeModule : NancyModule
{
    public HomeModule(IBus bus)
    {
        Get["/"] = _ => 
        {
            bus.Send<Command1>(m => { m.Id = "WHATEVER"; });
            return "OK";
        };
    }
}

public class Command1 : ICommand
{
    public string Id { get; set; }
}

public class Command2 : ICommand
{
    public string Id { get; set; }
}

public class Handler1 : IHandleMessages<Command1>
{
    public IBus Bus { get; set; }

    public void Handle(Command1 message)
    {
        Bus.Send<Command2>(m => { m.Id = message.Id; });
    }
}

public class Handler2 : IHandleMessages<Command2>
{
    public IBus Bus { get; set; }

    public void Handle(Command2 message)
    {

    }
}

public class Bootstrapper : DefaultNancyBootstrapper
{
    protected override void ApplicationStartup(Nancy.TinyIoc.TinyIoCContainer container, Nancy.Bootstrapper.IPipelines pipelines)
    {
        base.ApplicationStartup(container, pipelines);

        LogManager.Use<DefaultFactory>().Directory(container.Resolve<IRootPathProvider>().GetRootPath());

        var configuration = new BusConfiguration();
        configuration.EndpointName("MyEndpoint");
        configuration.DisableFeature<NServiceBus.Features.SecondLevelRetries>(); // TODO
        if (Debugger.IsAttached) configuration.EnableInstallers();
        configuration.UsePersistence<InMemoryPersistence>();

        var bus = Bus.Create(configuration).Start();

        container.Register<IBus>(bus);
    }
}
公共类HomeModule:NancyModule
{
公共家庭模块(IBus总线)
{
获取[“/”]=\u=>
{
发送(m=>{m.Id=“WHATEVER”;});
返回“OK”;
};
}
}
公共类命令1:ICommand
{
公共字符串Id{get;set;}
}
公共类命令2:ICommand
{
公共字符串Id{get;set;}
}
公共类Handler1:IHandleMessages
{
公共IBus总线{get;set;}
公共无效句柄(Command1消息)
{
发送(m=>{m.Id=message.Id;});
}
}
公共类Handler2:IHandleMessages
{
公共IBus总线{get;set;}
公共无效句柄(Command2消息)
{
}
}
公共类引导程序:DefaultNancyBootstrapper
{
受保护的覆盖无效应用程序启动(Nancy.TinyIoc.TinyIoCContainer容器、Nancy.Bootstrapper.IPipelines管道)
{
基础应用程序启动(容器、管道);
LogManager.Use().Directory(container.Resolve().GetRootPath());
var配置=新总线配置();
configuration.EndpointName(“MyEndpoint”);
configuration.DisableFeature();//TODO
if(Debugger.IsAttached)configuration.EnableInstallers();
configuration.UsePersistence();
var bus=bus.Create(configuration).Start();
集装箱登记册(公共汽车);
}
}
给我一个错误:

键值勘误表a539e440-0b7a-4283-a20a-a472006da636\0 NServiceBus.ContentType文本/xml N服务总线.会话ID 2b38fa53-749b-43e4-aa0f-a472006da63a N服务总线相关ID a539e440-0b7a-4283-a20a-a472006da636 NServiceBus.EnclosedMessageTypes命令1,版本=1.0.0.0, 区域性=中性,PublicKeyToken=空 NServiceBus.ExceptionInfo.ExceptionType System.ObjectDisposedException NServiceBus.ExceptionInfo.HelpLink
NServiceBus.ExceptionInfo.Message安全句柄已关闭 NServiceBus.ExceptionInfo.Source mscorlib NServiceBus.ExceptionInfo.StackTrace System.ObjectDisposedException: 安全手柄已关闭 System.Runtime.InteropServices.SafeHandle.DangerousAddRef(布尔值& 成功)在 系统.StubHelpers.StubHelpers.SafeHandledRef(安全手柄幻影, 布尔值(布尔值与成功值) Microsoft.Win32.Win32 Native.GetTokenInformation(安全令牌句柄 令牌句柄,UInt32令牌信息类,SafeLocalAllocHandle 令牌信息、UInt32令牌信息长度、UInt32和返回长度) 在 System.Security.Principal.WindowsIdentity.GetTokenInformation(SafeTokenHandle tokenHandle,TokenInformationClass(TokenInformationClass)位于 System.Security.Principal.WindowsIdentity.get_User()位于 System.Security.Principal.WindowsIdentity.GetName()位于 System.Security.Principal.WindowsIdentity.get_Name()位于 NServiceBus.Impersonation.Windows.WindowsIdentityEnricher.MutateOutgoing(逻辑消息 中的逻辑消息、传输消息(TransportMessage) c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Impersonation\Windows\windowsdidentityenricher.cs:line 16在 NServiceBus.MutateOutgoingPhysicalMessageBehavior.Invoke(OutgoingContext 上下文,下一步行动)在 c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\MessageMutator\mutateoutgoingpoingphysicalmessagebehavior.cs:line 12在NServiceBus.BehaviorChain
1.InvokeNext(T上下文)中
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.c\u显示类5.b\u中的2() c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 94在NServiceBus.SerializeMessagesBehavior.Invoke处(OutgoingContext 上下文,下一步行动)在 c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Unicast\Behaviors\SerializeMessagesBehavior.cs:line 38在NServiceBus.BehaviorChain
1.InvokeNext(T上下文)中
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.c\u显示类5.b\u中的2() c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 94 at NServiceBus.CreatePhysicalMessageBehavior.Invoke(OutgoingContext 上下文,下一步行动)在 c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Unicast\Behaviors\CreatePhysicalMessageBehavior.cs:line 58在NServiceBus.BehaviorChain
1.InvokeNext(T上下文)中
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.c\u显示类5.b\u中的2() c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 94 at NServiceBus.PopulateAutoCorrelationHeadersForRepliesBehavior.Invoke(OutgoingContext 上下文,下一步行动)在 c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Sagas\PopulateAutoCorrelationHeadersForRepliesBehavior.cs:line 46在NServiceBus.BehaviorChain
1.InvokeNext(T上下文)中
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.c\u显示类5.b\u中的2() c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 94 at NServiceBus.MutateOutgoingMessageBehavior.Invoke(OutgoingContext 上下文,下一步行动)在 c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\MessageMutator\MutateOutgoingMessageBehavior.cs:line 28在NServiceBus.BehaviorChain
1.InvokeNext(T上下文)中
c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line
107 at
NServiceBus.BehaviorChain
1.c\u显示类5.b\u中的2() c:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Pipeline\BehaviorChain.cs:line 94位于NServiceBus.SendValidatorBehavior.Invoke
public class PrincipalEnricher : IMutateOutgoingTransportMessages
{
    public void MutateOutgoing(LogicalMessage logicalMessage, TransportMessage transportMessage)
    {
        Thread.CurrentPrincipal = new WindowsPrincipal(WindowsIdentity.GetCurrent());
    }
}