C# 为什么我必须使用WCF而不是web服务?

C# 为什么我必须使用WCF而不是web服务?,c#,asp.net,.net,wcf,web-services,C#,Asp.net,.net,Wcf,Web Services,这是我关于stackoverflow的第一个问题 我读过很多文章,说开发人员应该使用WCF而不是web服务,因为它可以托管在不同的托管环境中,等等 但我想的是,我可以使用HttpRequest从任何项目调用web服务。 因此,为什么我必须使用WCF。对于WCF,开箱即用的绑定是BasicHttpBinding,它只是SOAP,与.asmx web服务相同。作为一个客户端,您仍然可以以与访问.asmx服务完全相同的方式访问它-通过从WSDL生成代理,或者通过普通的HttpWebRequest或您以

这是我关于stackoverflow的第一个问题

我读过很多文章,说开发人员应该使用WCF而不是web服务,因为它可以托管在不同的托管环境中,等等

但我想的是,我可以使用HttpRequest从任何项目调用web服务。
因此,为什么我必须使用WCF。

对于WCF,开箱即用的绑定是
BasicHttpBinding
,它只是SOAP,与.asmx web服务相同。作为一个客户端,您仍然可以以与访问.asmx服务完全相同的方式访问它-通过从WSDL生成代理,或者通过普通的
HttpWebRequest
或您以前使用的任何方式


好处是WCF提供了所有额外的选项,比如安全性、不同绑定的可能性、独立托管等等。另外,这也是.NET社区选择的方向,因此,如果您想在基于.NET服务的世界中保持相关性,您需要学习它。

WCF比ASMX web服务有更多内容。如果ASMX web服务适合您的需要,那么使用它是可以的,但是您可能会发现使用WCF比使用ASMX web服务更容易解决一些问题。使用WCF还可以做很多事情(记住,它是一个框架,而不仅仅是一种创建web服务的方式),而使用ASMX web服务是无法做到的


创建WCF服务,而不是ASMX Web服务,即使它们服务于相同的目的,似乎增加了复杂性,没有额外的好处,但这是开始学习WCF的好方法。

< P>您不必使用Windows通信基础。这最终将是你的选择。此外,该项目可能有助于满足您的需求

<>但是,使用Windows通信基金会的主要原因有以下原因:

  • 提供跨多个平台的各种通信阵列:HTTP、HTTPS、TCP、MSMQ等
  • 它提供了额外的安全性
  • 它有更好的序列化和反序列化方法
  • 它提供了更多的代码可重用性
  • 不同形式的托管
这些是其中的一些关键,最重要的是它的设计可以节省开发人员在基于web的通信中的时间。它也是一种为完全敏捷的应用程序引入面向服务的体系结构的方法

另一个重要的注意事项是认识到微软对标准web服务的支持有限;现在他们已经实现了WCF技术


希望这会有所帮助。

如果SOAP web服务对您同样适用,您就不必使用WCF。不过,您可能必须将框架的目标重新定为2.0,因为visual studio for.net 4中没有SOAP Webservices模板。WCF是Microsoft实现SOA的方法。有了WCF,您可以使用多个绑定来访问您的服务器,如Net Tcp、MsMq和其他。您可能会对Web API感兴趣作为替代:@TimMedora这是一个很好的建议,在我的回答中忘记了这一点。@Frank Thomas:您到底为什么会建议OP恢复到旧的框架版本以使用过时的技术?那是开玩笑吗?