【发布时间】:2011-01-23 19:31:37
【问题描述】:
我想知道最佳选择是什么:在 IIS 中托管 WCF http 服务或在 IIS 中创建网站并在其中使用 HttpModule 来处理请求?
或者也许在 Windows 服务中托管 WCF http 服务?
service/httpmodule 只记录传入 post 消息的正文,不返回任何内容。
良好的性能,例如300 个帖子/秒。很重要。
【问题讨论】:
我想知道最佳选择是什么:在 IIS 中托管 WCF http 服务或在 IIS 中创建网站并在其中使用 HttpModule 来处理请求?
或者也许在 Windows 服务中托管 WCF http 服务?
service/httpmodule 只记录传入 post 消息的正文,不返回任何内容。
良好的性能,例如300 个帖子/秒。很重要。
【问题讨论】:
无论您采用哪种方式,我很确定任何类型的日志记录都会降低服务器的性能。如果您平均每秒有 300 个请求,则每秒有该数量的线程竞争日志文件。一些线程将不得不等待才能访问日志文件,如果排队足够多,就会有很大的延迟。
也就是说,两者之间的性能差异是微不足道的 - 您应该根据您对技术的熟悉程度做出决定。
WCF 确实具有内置的诊断功能,因此您可以在不编写代码的情况下记录消息(请参阅MSDN),但是学习 WCF 需要更多的努力。这样做的好处是,如果您发现日志记录对性能的影响太大,您可以在不重写应用程序的情况下将其关闭。
您的应用程序是否仅记录帖子而不做任何其他事情?如果是这样,我建议使用数据库(SQL Server、mySQL 等)而不是文件系统 - 这将提供更好的性能。
【讨论】:
我相信性能可以忽略不计,在 IIS 中托管服务的好处意味着如果您需要专门满足服务的需要,您可以获得 IIS 应用程序的额外管理和配置好处。
我猜性能确实取决于服务正在处理的工作负载。
我更喜欢 WCF 服务而不是 HttpModule,因为 WCF 为您封装了 SOAP 处理,如果您正在构建模块,则必须自己动手。
【讨论】: