2009-08-08 39 views

回答

2

很难说 - 自托管的主要原因可能是拥有更多的控制权,例如,可以根据需要调整系统。

IIS托管方便,易于设置,并提供“按需”加载服务,例如,服务主机只在请求实际进入时才被加载。

服务主机的这种持续加载(和卸载)可能会损害性能 - 另一方面,自托管服务主机,您可能使用更多内存(因为ServiceHost始终处于活动状态并始终处于内存中)。

所以再次 - 这是一个内存与速度的折衷 - selfhosting使用更多的RAM,但可能快一点点。

Marc

1

一旦服务运行,我预计没有显着差异。

但是,与任何性能问题一样,只有通过在实际负载情况下测试您的服务并查看大图,才能获得有用的答案。例如。人们可能会服务几个更多的请求,但存储成本稍高。

当然还有其他的差别,例如根据需求实例化,IIS托管预计会稍微慢一些,以便从空闲状态提供第一个请求,无论这种情况是否显着,只有您可以知道。

+0

当然,如果您在IIS中托管并且拥有推荐的“每次调用”激活模型,则IIS(最糟糕的情况下)会一直重复创建ServiceHost实例。一旦ServiceHost启动,我同意 - 没有什么区别。 – 2009-08-08 16:55:29

1

一旦“都柏林”(一个专门构建的WCF主机环境)发布,使用它就很自然。

编辑:本答案最初是关于由于线程差异导致的IIS与自我托管之间的潜在差异。不过,我立场纠正,见下面的评论。

+0

自托管的WCF与在IIS中托管它一样是多线程的 - 我在这里看不到任何益处。 – 2009-08-08 17:21:58