【问题标题】:HttpModule versus WCF service in IIS hostIIS 主机中的 HttpModule 与 WCF 服务
【发布时间】:2011-01-23 19:31:37
【问题描述】:

我想知道最佳选择是什么:在 IIS 中托管 WCF http 服务或在 IIS 中创建网站并在其中使用 HttpModule 来处理请求?

或者也许在 Windows 服务中托管 WCF http 服务?

service/httpmodule 只记录传入 post 消息的正文,不返回任何内容。

良好的性能,例如300 个帖子/秒。很重要。

【问题讨论】:

    标签: .net wcf iis


    【解决方案1】:

    无论您采用哪种方式,我很确定任何类型的日志记录都会降低服务器的性能。如果您平均每秒有 300 个请求,则每秒有该数量的线程竞争日志文件。一些线程将不得不等待才能访问日志文件,如果排队足够多,就会有很大的延迟。

    也就是说,两者之间的性能差异是微不足道的 - 您应该根据您对技术的熟悉程度做出决定。

    WCF 确实具有内置的诊断功能,因此您可以在不编写代码的情况下记录消息(请参阅MSDN),但是学习 WCF 需要更多的努力。这样做的好处是,如果您发现日志记录对性能的影响太大,您可以在不重写应用程序的情况下将其关闭。

    您的应用程序是否记录帖子而不做任何其他事情?如果是这样,我建议使用数据库(SQL Server、mySQL 等)而不是文件系统 - 这将提供更好的性能。

    【讨论】:

    • 我确实更喜欢数据库选项,以便开箱即用地解决并发和内务管理问题。 HttpModule 接收流中的 POST 文本,Wcf 选项接收包装在 xml 中的 POST 数据(即 xml 中的 xml,因为 post 本身是一个肥皂信封)。 http 模块看起来很简单 - 另一方面 wcf 是标准,因此我发布了这个问题。
    【解决方案2】:

    我相信性能可以忽略不计,在 IIS 中托管服务的好处意味着如果您需要专门满足服务的需要,您可以获得 IIS 应用程序的额外管理和配置好处。

    我猜性能确实取决于服务正在处理的工作负载。

    我更喜欢 WCF 服务而不是 HttpModule,因为 WCF 为您封装了 SOAP 处理,如果您正在构建模块,则必须自己动手。

    【讨论】:

    • 肥皂加工结束是什么意思? HttpModule 包含请求的主体,它们是我必须记录/保存为文本的肥皂数据。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多