没有 ASP.NET/IIS 的 .NET Web 服务?
Posted
技术标签:
【中文标题】没有 ASP.NET/IIS 的 .NET Web 服务?【英文标题】:.NET Web Services without ASP.NET/IIS? 【发布时间】:2010-12-01 21:16:59 【问题描述】:我正在实现一个需要公开 Web 服务接口的服务器组件,但没有应用程序需要它在 IIS 上与 ASP.NET 一起运行。在没有 ASP.NET/IIS 的情况下在 .NET 中实现 Web 服务是否有直接的方法? (我使用的是 .NET 3.5 / C# 3.0)
【问题讨论】:
您使用的是哪个版本的 .Net? @dcw 只是好奇为什么要避免将 IIS 7 作为 WCF 主机?谢谢! @dcw 抱歉...我并不是要在评论中添加“7”。我只是好奇为什么您会选择避免使用 IIS。谢谢! 扎克:没有深刻的洞察力。我只需要能够使用端口 80 来驱动各种服务器进程,但不想让我的客户端在所有机器上都安装 IIS。 HTH。 :-) 避免 IIS 的原因有很多。例如,如果您想创建一个独立的服务器应用程序,或者仅仅因为您认为您可以做一些比 IIS 更好的事情。为什么大多数 .NET 开发人员如此坚持 Microsoft Guru 的愿景? 【参考方案1】:您可以使用ServiceHost 类来托管服务。 WCF tutorial 包含示例代码。
【讨论】:
【参考方案2】:只要您使用支持它的 .Net 版本,您就应该关注 Windows Communication Foundation (WCF)。您需要一些进程来托管这些服务,因此如果您不使用 IIS,您最终可能会编写自己的 EXE 来托管服务,但您应该从这里开始。
http://msdn.microsoft.com/en-us/library/ms731082.aspx
http://msdn.microsoft.com/en-us/netframework/aa663309.aspx
【讨论】:
【参考方案3】:Hosting and Consuming WCF Services
这是一篇较旧的文章,但仍然相关。
【讨论】:
【参考方案4】:是的,使用ServiceHost。
【讨论】:
【参考方案5】:如果您使用 WCF (Windows Communication Foundation),它几乎取代了 Web 服务,您可以托管在 Windows 服务或 IIS 中。
【讨论】:
以上是关于没有 ASP.NET/IIS 的 .NET Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.Net / IIS 7.5 无法识别用于 OutputCache 的 jMeter
ASP.NET iis发布网站后,浏览报错。虚拟路径“/aspx/login.aspx”映射到另一个应用程序,这是不允许的。