我一直在使用WCF“自我”托管应用程序做很多工作。我最近被要求编写一个Web服务,其中调用客户端是一个名为“WGET”的基于Linux的程序。我想使用WCF而不是传统的ASMX Web服务。 Web服务返回标准XML响应。我不确定两种技术之间的细节,但我知道WCF是正确的路线。我创建了一个要在IIS中托管的WCF服务(使用basicHttpBinding)。
1。)经典的ASMX Web服务(标准HTTP POST / GET)是否使用SOAP来返回响应?我从XSD创建了一个用于Web服务响应的类。幕后真的发生了什么?是否只有特殊的XML HTTP标头知道如何处理响应?响应没有包含在SOAP中吗?传统的ASMX Web服务与使用.Net“XSD”程序生成的类完美配合。
2.)我想将WCF用于此服务。将使用basicHttpBinding工作吗?正如我所读到的,这是用于ASMX客户端的正确绑定。这是使用SOAP,标准HTTP头还是其他什么?
3。)这是一个愚蠢的问题,因为我没有做过很多网络服务编程。我注意到在ASMX默认登录页面上有响应示例和调用功能的代码。当我使用WCF创建相同的服务时,我不得不创建一个客户端应用程序来执行这些任务。有没有办法像经典的ASMX服务那样公开WCF端点,或者WSDL是唯一的路径?
与往常一样,我非常感谢您的反馈。
谢谢, 布伦南
答案 0 :(得分:6)
回答你的问题:
1。)经典的ASMX Web服务(标准HTTP POST / GET)是否使用SOAP 回复?
是。 ASMX正在使用SOAP 1.1标准,该标准也在WCF中实现。
2.)我想将WCF用于此服务。将使用basicHttpBinding 工作?
basicHttpBinding
是模仿ASMX服务的完美搭档,是的。它就像ASMX一样使用SOAP 1.1,并且应该像ASMX一样。
3.)我注意到在ASMX默认登陆页面上有一些例子 响应和调用的代码 功能。有办法吗? 像经典一样公开WCF端点 ASMX服务或者是WSDL唯一的 路线?
WCF仅显示默认页面,以便您了解确实存在服务。没有旋钮或选项可以打开以获得相同的ASMX样式页面(出于安全原因)。如果需要,你必须自己做。 WSDL / XSD实际上是WCF的方式。