没有 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 IIS7 的永久 301 重定向

ASP.NET IIS 服务器端打印失败

ASP.NET iis发布网站后,浏览报错。虚拟路径“/aspx/login.aspx”映射到另一个应用程序,这是不允许的。

2011 ASP.NET/IIS MVP

在 ASP.NET/IIS 的 url 中使用冒号 (:)