代码之家  ›  专栏  ›  技术社区  ›  eidylon

以编程方式创建WCF客户端

  •  11
  • eidylon  · 技术社区  · 15 年前

    我有一个启用了Silverlight的WCF服务的网站。该服务工作正常,我可以在浏览器中浏览到WSDL页面,没有问题。

    现在,我正试图在一个DLL中创建一个客户机。不过,我需要以编程方式创建整个客户机,因为它是在一个DLL中被调用的,不管出于什么原因(通过设计?)不会从自己的配置文件中读取ServiceModel节。

    我的代码是:

    Dim endp As EndpointAddress = New EndpointAddress("http://www.mydomain.com/licensing/lic.svc")
    Dim bind As WSHttpBinding = New WSHttpBinding()
    Dim svc = New lnt.licClient(bind, endp)
    Dim rsp = svc.CheckIt(key)
    

    但当我调用svc.checkit方法时,我得到以下错误:

    Content Type application/soap+xml; charset=utf-8 was not supported by service http://www.mydomain.com/licensing/lic.svc. 
    The client and service bindings may be mismatched.
    {"The remote server returned an error: (415) Cannot process the message because the content type 'application/soap+xml; charset=utf-8' was not the expected type 'application/soap+msbin1'.."}
    

    我如何正确地创建我的客户机,使它们正确地“匹配”??
    事先谢谢!!!!

    3 回复  |  直到 9 年前
        1
  •  11
  •   SliverNinja - MSFT    12 年前

    啊---找到了。这个 服务模型 网站中的节 web.config 被设定为 定制装订 . 更改了它,使其与客户发送的内容相匹配,现在它工作得很好。

        2
  •  3
  •   Charles Menguy jdw6415    12 年前

    我也遇到了同样的问题。更具体地说,我的修复方法是更新我使用的绑定类型。我在用 wsHttpBindings 而不是 basicHttpBindings . 这是导致故障的原因 WSHTPTPBIDENS 使用SOAP 1.2 basichttpbindings 使用SOAP 1.1和我使用的服务所需的SOAP 1.1

        3
  •  0
  •   Wiktor    12 年前

    我也有同样的错误。服务正在编译,客户端也在应用。客户端应用程序中的服务引用正在成功更新引用。我再次尝试删除和添加引用,但没有帮助。Web服务中的已删除接口中存在问题。