.net – 我应该在IIS中托管我的WCF服务吗?

前端之家收集整理的这篇文章主要介绍了.net – 我应该在IIS中托管我的WCF服务吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我正在设计一个WCF服务.我对WCF没有任何经验,我正在尝试决定是否应该托管在IIS中,还是自定义Windows服务.还是其他一些选项?

需要考虑的事项

>启动时需要从数据库加载数据.
>它需要跨请求维护此数据,而不是每次都加载.
>它需要同时处理多个请求.
>它需要尽可能配置端点.
>它会调用本地dll相当多.

我怀疑在IIS中托管它会简化某些事情,但我不知道在这种情况下会是个好主意.

我的选择是什么,他们的利弊是甚么?

您需要基本看三个选项:

1)在IIS6(Windows Server 2003/2003 R2)中托管:在这种情况下,您只能托管HTTP协议 – 没有其他.这本身就是一个很大的限制,你不能使用例如netTcp用于Intranet方案.

2)在IIS7 / WAS(Vista,Server 2008)中托管):这为您提供了更多的支持协议选项,主机环境首先是获胜者.

3)自主托管:在这种情况下,完全由您自己做任何事情来托管和运行您的服务.

如果现在抛出选项#1(如果只有IIS6可用,我总是使用自主托管),那么IIS7与自主托管相关.

IIS7给你“按需激活”,例如您的服务代码始终不在内存中,一旦请求进入,它将被加载和实例化.这可以是一个加号.

另一方面,在IIS7 / WAS中托管可以让您有能力指定自己的端点 – 您的端点,因此服务地址是您的“MyService.svc”文件所在的虚拟目录.你不能以任何方式,形状或形式来改变.

自主托管可能看起来像很多工作 – 但它确实给您最好的灵活性:您可以根据需要选择协议,您可以按照自己喜欢的方式设置自己的寻址方案,并且您可以完全控制什么完成时如果您需要做一些额外的工作来托管服务,您可以介绍自己的ServiceHost,等等.

除非你正在玩WCF一点点,否则我总是建议并投票支持自我托管 – 如果您需要在Windows NT服务(这是生产环境的最佳解决方案)中始终运行WCF服务,如果您正在开发/调试,您可以在控制台应用程序中完全托管您的WCF服务,您可以随时启动和停止.

所以要做一个很长的故事:最后,如果你真的要控制发生了什么,我会永远建议自我托管.

一旦新的“Dublin”Server-Addon出现 – 在.NET 4推出后的某个时候,可能早在2010年早些时候,这可能会发生变化,但现在还不言而喻.

希望这可以帮助.

渣子

猜你在找的Windows相关文章