WCF 服务而不是 ASMX Web 服务?

Posted

技术标签:

【中文标题】WCF 服务而不是 ASMX Web 服务?【英文标题】:WCF Service instead of ASMX Web Service? 【发布时间】:2011-02-19 22:30:35 【问题描述】:

我正在编写一个 SOAP 服务器,它将充当外部客户端的端点。外部客户端需要 SOAP 1.1。我将在 SOAP 消息中获取嵌入的业务对象并将它们传递给内部应用程序,然后获取响应并使用 SOAP 消息响应永恒的客户端。

几年前我做过传统的基于 ASMX 的 Web 服务。现在,我一直在探索 WCF 服务并想知道最好的方法。

1) WCF 是否应该被视为 ASMX Web 服务的超集?

2) 是否还有理由继续使用 ASMX 而不是 WCF 编写新的 Web 服务?

3) 与 SOAP 扩展相比,WCF 是否为处理 SOAP 消息提供了更好的工具?

4) 我能否像在 ASMX 中更改 web.config 那样使用 WCF 限制与 SOAP 1.1 的通信?

5) WCF 是否有一种简单的方法来记录或查看命中服务的请求,而无需求助于 SOAP 扩展之类的东西?

对不起,我的问题不是很具体;仍在尝试处理我需要知道的内容...

使用 VS2008、Windows Server 2008。

克里斯

【问题讨论】:

Web Services -- WCF vs. Standard的可能重复 见***.com/questions/tagged/wcf+asmx 见keithelder.net/blog/archive/2008/10/17/… 感谢大家的反馈。我将尝试使用 WCF 来实现;有谁知道我在哪里可以找到在 VS2008 中解析/使用 SOAP 消息的任何好的示例?我正在努力使用带有 SOAP 的 asmx 或 wcf 获得有效的 Web 服务。 您不使用 WCF 解析消息 - 您添加一个服务引用。请参阅johnwsaundersiii.spaces.live.com/blog/… 了解更多示例,请参阅msdn.microsoft.com/wcf 了解更多信息。 【参考方案1】:

我建议您使用 WCF。如果您将 WCF 服务配置为使用 basichttpbinding,它将作为 SOAP 1.1 服务运行。

    WCF “取代”了多种通信技术,包括 asmx。 我想不出任何技术原因。如果您有一个知道 asmx 但不知道 wcf 的团队,或者您有一个包含很多 asmx 服务的项目并且您不想引入新技术,您可能会这样做。 WCF 有 message contracts,但不是 100% 确定您的意思。 是的,基本的 http 绑定 是的,你可以使用WCF tracing

【讨论】:

关于第2点,我想不出任何技术原因,但可能还有其他原因。 +1 关于 WCF 跟踪的信息非常有趣,对我来说是新的。 @wchrisjohnson:ASMX 为您提供了一种非常直接的方式来编写 Web 服务。 WCF 为您提供了许多自定义可能性,因此您会收到一种方法来选择最适合您的每个开发项目的方式。

以上是关于WCF 服务而不是 ASMX Web 服务?的主要内容,如果未能解决你的问题,请参考以下文章

Web 服务——WCF 与 ASMX(“标准”)

不同的 WSDL ASMX、WCF Web 服务

像标准 ASMX Web 服务一样查询 WCF

选择啥? .net 3.5 中的 ASMX Web 服务或 WCF?

Fiddler 不捕获 WCF 流量但捕获 ASMX 很好

asmx 到 WCF 或 Web API