我有两个VS2010实例在同一台机器上运行。一个VS实例有一个带有basicHttpBinding的WCF服务。 现在正如我在书中读到的那样,为了使用basicHttpBinding调用此WCF服务,我必须向其添加Web引用而不是服务引用。 我运行了包含WCF服务的项目,并从其他VS实例尝试添加Web引用,这是我gacve的URL(我从WCFClientHost获取)
http://localhost:8732/Design_Time_Addresses/WcfServiceLibraryBasicHttpBinding/Service1/mex
但每当我尝试添加WCF服务时,我都会收到Http 400错误。 请让我知道我做错了什么。
答案 0 :(得分:1)
你应该分开两件事:
Add Service Reference
添加基于.NET 3.0及 WCF运行时的服务接口。它支持所有 WCF绑定 - 包括basicHttpBinding
Add Web Reference
是旧式.NET 1.x / 2.x方法,用于添加对ASMX Web服务的引用(" ASP.NET Web服务") 。这项技术已经过时,并且自.NET 3.0起已被WCF完全取代。 ASMX只支持与basicHttpBinding
或多或少等价的内容。
ASMX技术已经过时,如果你真的无法使WCF工作,你应该只使用它(但在我写作和使用过多的Web服务的3年中,我从未见过这样的案例) - 避免这种情况,除非你绝对不能让WCF工作 - 无论出于什么奇怪的原因......
您提供给CodeProject文章的链接有一个完全错误的陈述,您需要Add Web Reference
使用basicHttpBinding
- 这只是简单的 NOT TRUE 即可。