1

我有两个 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 错误。请让我知道我做错了什么。

4

1 回答 1

1

你应该把两件事分开:

  • Add Service Reference添加了一个基于 .NET 3.0 及更高版本WCF 运行时的服务接口。它支持所有WCF 绑定 - 包括basicHttpBinding

  • Add Web Reference是添加对 ASMX Web 服务(“ASP.NET Web 服务”)的引用的旧式 .NET 1.x/2.x 方法。该技术已经过时,从 .NET 3.0 开始已完全被 WCF 取代。ASMX 只支持或多或少等同于basicHttpBinding.

    ASMX 技术已经过时了,只有当你真的无法让 WCF 工作时才应该使用它(但在我 3 年的写作和使用过多的 Web 服务中,我从未见过这样的案例)——避免这种情况,除非你绝对不能让 WCF 工作——无论出于什么奇怪的原因......

您提供给 CodeProject 文章的链接有一个完全错误的声明,您需要使用它Add Web Reference-basicHttpBinding这只是简单的NOT TRUE

于 2012-06-18T19:52:18.490 回答