.net 可靠(持久)的分布式日志引擎

.net 可靠(持久)的分布式日志引擎,.net,logging,distributed,reliability,unreliable-connection,.net,Logging,Distributed,Reliability,Unreliable Connection,试图为分布式系统找到一个商业日志框架。此框架必须允许远程服务器上的.NET应用程序记录消息,然后将这些消息收集到中心位置。如果可能,中心位置应将消息存储在SQL Server数据库中 要求: 能够在远程服务器上启动消息日志记录,即使网络中断阻止将消息立即发送到中心位置 将消息分派到中心位置应由运行.NET应用程序的进程以外的进程处理,以防止ASP.NET应用程序或web服务的性能下降 确保最终将消息传递到中心位置。e、 g.如果远程服务器在网络未响应的时间段结束时重新启动,则在恢复远程服务器和正

试图为分布式系统找到一个商业日志框架。此框架必须允许远程服务器上的.NET应用程序记录消息,然后将这些消息收集到中心位置。如果可能,中心位置应将消息存储在SQL Server数据库中

要求:

  • 能够在远程服务器上启动消息日志记录,即使网络中断阻止将消息立即发送到中心位置
  • 将消息分派到中心位置应由运行.NET应用程序的进程以外的进程处理,以防止ASP.NET应用程序或web服务的性能下降
  • 确保最终将消息传递到中心位置。e、 g.如果远程服务器在网络未响应的时间段结束时重新启动,则在恢复远程服务器和正常网络条件时,仍应发送记录的消息

  • 这是一个选择。是的。

    一个非常简单的解决方案可能是继续编写本地日志,并创建一个单独的进程将日志重新发布到服务器。您可以使用几个选项发布HISH日志,包括发布-订阅消息总线(如msmq)


    使用不同的解决方案,比如编写一个特定的Log4NET适配器,当然是一种选择,但是它可能会导致耦合/依赖性问题,所以收养必须考虑实际的部署环境。

    < P>我认为您应该能够使用微软企业库和MSMQ进行此操作。Entlib日志记录应用程序块具有内置的MSMQ侦听器。虽然我们在几个项目上使用了Entlib日志记录,但我个人并没有使用MSMQ分发服务


    它是线程安全的,但除非我误解了,否则它不提供内置的分布式持久处理日志消息的功能。