问题 使用.svc文件和在“WCF服务主机”中托管WCF服务有什么区别?


我写了一个服务,它有一个.svc文件。我可以浏览这项服务,但这似乎是一种奇怪的方式。我想知道是否可以使用.svc文件生成服务,或者我们是否应该考虑使用WCF服务主机并设置绑定等....


10614
2018-06-09 13:39


起源



答案:


一个svc文件适用于您在IIS中托管(它现在可以托管 没有这些 在.NET 4.0中。除非你有自行托管的理由,否则我强烈建议坚持使用IIS(WAS),因为它为“免费”提供了大量的托管基础​​设施。

更新(11/16): 更新了断开的链接以指向比较ASP.NET论坛帖子。以前的链接是 这里 万一它将来某个时候恢复生机。


8
2018-06-09 13:49



很酷,只是阅读自我托管我想如果我们想允许TCP绑定,我们将自己托管。对于我们的需求,IIS中的.svc会感谢! - Exitos
@ Pete2k您也可以使用WAS进行TCP绑定。事实上,IIS7中WAS的核心目的是提供超越HTTP的托管功能。要使您的解决方案通过TCP进行通信,只需要在配置中添加TCP端点定义(以及为远程客户端解除相应的防火墙限制)。 - Darren Lewis
答案中的链接被打破了...... - Diego Deberdt
@DiegoDeberdt更新了链接。见说明。 - Darren Lewis


答案:


一个svc文件适用于您在IIS中托管(它现在可以托管 没有这些 在.NET 4.0中。除非你有自行托管的理由,否则我强烈建议坚持使用IIS(WAS),因为它为“免费”提供了大量的托管基础​​设施。

更新(11/16): 更新了断开的链接以指向比较ASP.NET论坛帖子。以前的链接是 这里 万一它将来某个时候恢复生机。


8
2018-06-09 13:49



很酷,只是阅读自我托管我想如果我们想允许TCP绑定,我们将自己托管。对于我们的需求,IIS中的.svc会感谢! - Exitos
@ Pete2k您也可以使用WAS进行TCP绑定。事实上,IIS7中WAS的核心目的是提供超越HTTP的托管功能。要使您的解决方案通过TCP进行通信,只需要在配置中添加TCP端点定义(以及为远程客户端解除相应的防火墙限制)。 - Darren Lewis
答案中的链接被打破了...... - Diego Deberdt
@DiegoDeberdt更新了链接。见说明。 - Darren Lewis


好吧,在WCF中,您不仅限于在IIS中托管。 .svc文件等同于asmx文件。如果您要在IIS中托管,我使用了.svc文件,但如果我在控制台应用程序或Windows服务中托管,我通过ServiceHost实例化该服务。


5
2018-06-09 13:50





据我所知,在IIS中托管服务时需要.svc文件。 如果您想以其他方式托管您的服务(例如,通过在代码中实例化服务主机),您不应该需要它。

话虽这么说,我个人更喜欢使用IIS进行服务托管。


3
2018-06-09 13:48