gpt4 book ai didi

nservicebus - Web 应用程序订阅了事件,但不处理它们

转载 作者:行者123 更新时间:2023-12-04 05:57:09 26 4
gpt4 key购买 nike

我的 Web 进程向域发送命令并处理事件(通过 SIGnalR 推送到浏览器)。它在 IIS Express/Win7 x64 上运行 ASP.NET MVC3 和 .NET 4

随机地,有时从一开始,它就决定停止向我的处理程序分发事件。事件位于 Web 端点的日志队列中,但没有其他跟踪记录。它们完全从日志中消失了,我在处理程序中的断点从未被命中,并且端点和错误队列都是空的。

        Func<Type, bool> isMessage = t => typeof(IMessage).IsAssignableFrom(t);
Func<Type, bool> isCommand = t => typeof(ICommand).IsAssignableFrom(t);
Func<Type, bool> isEvent = t => typeof(IEvent).IsAssignableFrom(t);


Configure.WithWeb()
.NinjectBuilder(Kernel)
.DefineEndpointName("Hospital.Web")
.DefiningMessagesAs(isMessage)
.DefiningCommandsAs(isCommand)
.DefiningEventsAs(isEvent)
.Log4Net()
.JsonSerializer()
.MsmqTransport()
.UnicastBus()
.LoadMessageHandlers()
.PurgeOnStartup(true)
.CreateBus()
.Start();

这是我的 web.config 的 NSB 部分:
<MsmqTransportConfig ErrorQueue="error" NumberOfWorkerThreads="1" MaxRetries="5" />
<UnicastBusConfig>
<MessageEndpointMappings>
<add Messages="Hospital.Commands" Endpoint="Hospital.CommandHandlers" />
<add Messages="Hospital.Events" Endpoint="Hospital.CommandHandlers" />
</MessageEndpointMappings>
</UnicastBusConfig>

这是我的处理程序之一:
public class StatsHandler :
IHandleMessages<PatientAdmitted>,
IHandleMessages<BedAssigned>,
IHandleMessages<PatientDischarged>
{

private static readonly ILog Log = LogManager.GetLogger(typeof (StatsHandler));

private readonly IConnectionManager _connectionManager;

public StatsHandler(IConnectionManager connectionManager)
{
_connectionManager = connectionManager;
}

protected dynamic Clients
{
get { return _connectionManager.GetClients<StatsHub>(); }
}


public void Handle(PatientAdmitted message)
{
Log.DebugFormat("Admitted {0} {1}", message.FirstName, message.LastName);
Clients.patientAdmitted();
}

public void Handle(BedAssigned message)
{
Log.DebugFormat("Assigned {0} to {1}", message.PatientId, message.Bed);
Clients.bedAssigned();
}

public void Handle(PatientDischarged message)
{
Log.DebugFormat("Discharged {0}", message.PatientId);
Clients.patientDischarged();
}
}

我也 asked this question in the NServiceBus group .该消息附带了一个日志文件。

最佳答案

RC4 中存在一个可能导致此行为的错误,您可以尝试使用 RC5 看看是否有帮助吗?

关于nservicebus - Web 应用程序订阅了事件,但不处理它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9383085/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com