我可以在 Windows 服务中托管(自托管)WCF 服务并通过 http 公开它吗?
Posted
技术标签:
【中文标题】我可以在 Windows 服务中托管(自托管)WCF 服务并通过 http 公开它吗?【英文标题】:Can I host (self host) a WCF Service in a Windows Service and expose it via http? 【发布时间】:2012-02-23 13:07:52 【问题描述】:我是 WCF 的新手。这可能吗?如果它是通过外部 Web 应用程序使用的,最好使用 IIS 和 http,即由 ASP.NET MVC 应用程序托管的服务?
【问题讨论】:
【参考方案1】:是的,您可以在 Windows 服务中托管 WCF 服务。
http://msdn.microsoft.com/en-us/library/ms733069.aspx
我会说如果你可以在 iis 中托管它可能会更好。
【讨论】:
我只是想确认在 Windows 服务中托管 WCF 服务意味着它仍然可以通过 http 端口 80 暴露给外部应用程序吗? 这是一个很好的问题,我假设服务必须以管理用户身份运行才能绑定到 1024 以下的端口。不过我很可能是错的。 我知道在 XP/Server 2003 上自托管端口 80(甚至 443)不是问题,但可能需要在 W7/ 上运行端口保留命令S2008. WCF 或 Windows 服务本身并没有限制您通过 http 端口 80 暴露它。但是,操作系统、防火墙、防病毒等可能会引起必须处理的头痛。以上是关于我可以在 Windows 服务中托管(自托管)WCF 服务并通过 http 公开它吗?的主要内容,如果未能解决你的问题,请参考以下文章
连接到 Windows 服务中自托管的 SignalR 的问题
选择使用 IIS 进行 WCF 服务托管或使用 Windows 服务进行自托管