WCF、ASMX基本HTTP绑定和IIS

3
我一直在使用WCF“self”托管应用程序进行大量工作。最近,我被要求编写一个Web服务,调用客户端是一个名为“WGET”的Linux程序。我想使用WCF而不是传统的ASMX Web服务。Web服务返回标准XML响应。我不确定这两种技术之间的底层细节,但我知道WCF是正确的路线。我创建了一个WCF服务,可以在IIS中托管(使用basicHttpBinding)。
1.) 传统的ASMX Web服务(标准HTTP POST/GET)是否使用SOAP返回响应?我从XSD创建了Web服务响应类。幕后到底发生了什么?只有特殊的XML HTTP头知道如何处理响应吗?响应没有包装在SOAP中吗?使用.Net的“XSD”程序生成的类在传统的ASMX Web服务中完美地工作。
2.) 我想为此服务使用WCF。使用basicHttpBinding是否可行?据我所知,这是用于ASMX客户端的正确绑定。这是否使用SOAP、标准的HTTP头或其他内容?
3.) 这是一个愚蠢的问题,因为我没有做过很多Web服务编程。我注意到在ASMX默认着陆页上有响应示例和代码来调用功能。当我使用WCF创建相同的服务时,我必须创建一个客户端应用程序来执行这些任务。是否有一种方法可以像传统的ASMX服务一样公开WCF端点,或者只能使用WSDL?
如常,我非常感谢您的反馈。
谢谢, Brennan
1个回答

6
为了回答你的问题:
1.) 经典的 ASMX web 服务(标准的 HTTP POST/GET)是否使用 SOAP 返回响应?
是的。ASMX 使用的是 SOAP 1.1 标准,这个标准也被 WCF 所采用。
2.) 我想要使用 WCF 来实现这个服务。使用 basicHttpBinding 行吗?
是的,basicHttpBinding 是模仿 ASMX 服务的完美选择。它和 ASMX 一样使用 SOAP 1.1,应该行为也很相似。
3.) 我注意到在 ASMX 的默认主页上有响应示例和调用功能的代码示例。是否有一种方式可以像经典的 ASMX 服务那样公开 WCF 端点,或者 WSDL 是唯一的途径?
WCF 只显示一个默认页面,让你知道确实有一个服务存在。出于安全原因,没有任何旋钮或选项可用于获得与 ASMX 类似的页面。如果需要,你需要自己完成。WSDL / XSD 真的是使用 WCF 的最佳方式。

谢谢Marc!感谢您的回复。 - Brennan Mann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接