【问题标题】:Will hosting WCF in a service give me a performance gain在服务中托管 WCF 是否会给我带来性能提升
【发布时间】:2015-07-15 14:09:17
【问题描述】:

我有一个桌面应用程序,它通过托管在 IIS 下的 Web 服务在 1 秒内上传 10 个大小为 2000 字节的 jpeg

操作合同是单向的(即不是双工的),我在绑定中使用了 MTOM。

如果我将其自托管在 Windows 服务下,是否会有任何性能提升?

【问题讨论】:

标签: wcf self-hosting


【解决方案1】:

有一个关于使用不同的流数据绑定的有趣分析的问题:

Streaming with WCF and MTOM

【讨论】:

  • 您好,感谢您提供的链接。我不能依赖 net.tcp 绑定,因为它不是 Intranet 应用程序。我相信我已经使用的绑定是我可以使用的最好的绑定。我更感兴趣的是在 IIS 之外托管 wcf 服务是否会给我带来任何性能提升
  • 我明白了。具有相同绑定的不同主机之间不会有相关性能,但 IIS 有更多资源来管​​理您的应用程序,例如内存和 cpu 使用情况、回收等。
  • @RicardoPontual。 IIS 有更多的资源,比如内存和 CPU?那么你是说在 w3wp 工作进程中运行的线程比在 Windows 服务中运行的线程可以访问更多的内存和 CPU 吗?此陈述不正确,您的回答未解决 OP 的问题
  • @TomRedfern 不,这不是我的意思,我是说 IIS 可以控制每个应用程序池的内存和 cpu 限制,例如 Windows 服务更难以管理。
  • OK 误会深表歉意
【解决方案2】:

您可能会得到更好的响应时间,因为 ServiceHost 已经加载到内存中并准备好接收呼叫。 IIS 托管并非如此,它可能会在低流量期间卸载 appdomain。因此,当确实有呼叫进入时,IIS 需要启动 ServiceHost,然后它才能处理您的呼叫。

但是,IIS 为您提供了一些有用的功能,例如可靠性 - 只要有人注意到,Windows 服务就会崩溃并保持关闭状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 2019-08-29
    • 1970-01-01
    相关资源
    最近更新 更多