【问题标题】:WSDL generated proxy classWSDL 生成的代理类
【发布时间】:2013-03-19 08:17:18
【问题描述】:

我有一个关于为 Web 服务生成的代理类的问题。基本上我已经尝试向我的解决方案添加一个 Web 服务引用,但我不能因为缺少 discorvery 文件,所以我做了很多人在互联网上说的那样,通过使用 WSDL 生成代理类,然后将其实例化使用它。

所以基本上我有一个很好的代理类,但是我如何使用它,当然我可以实例化它并调用方法但是它现在如何连接到互联网上某些服务器上的实际 Web 服务?

如果你查看 wsdl 文件,你会发现例如:

 <wsdl:service name="AuthenticationService">
  <wsdl:documentation>Provides simple authentication capability.</wsdl:documentation> 
   <wsdl:port binding="auth:AuthenticationServiceSoapBinding" name="AuthenticationService">
  <wsdlsoap:address location="http://localhost:8080/alfresco/api/AuthenticationService" /> 
  </wsdl:port>
  </wsdl:service>

它重定向到所请求的网络服务器等的本地主机......

但是在我的课堂上,我将它作为带有 'localhost' url 的构造函数,但是 Web 服务正在其他服务器上运行,所以是的,我无法连接是正常的。

public AuthenticationService() {
    this.Url = "http://localhost:8080/alfresco/api/AuthenticationService";
 }

但是我现在怎样才能正确使用它呢?

我应该将此网址设置为 wsdl 文件的原始网址吗? 类似的东西:http://internetserver:8080/alfresco/api/AuthenticationService.wsdl?这样做会返回我的 wsdl 文件,但不会返回结果,我会收到错误。尝试别的东西,结果我得到 404 ....

对此有什么想法吗?

【问题讨论】:

    标签: c# web-services wsdl alfresco


    【解决方案1】:

    我的经验有限,但我为 Apple 的 GSX 服务添加了一次 Web 服务参考。它在我的 web.config 中添加了以下内容,我认为这是客户端对象的连接方式:

    <client>
      <endpoint address="https://gsxws2.apple.com/gsx-ws/services/emea/iphone" binding="basicHttpBinding" bindingConfiguration="GsxWSEmeaIPhoneBinding" contract="AppleGSX.GsxWSEmeaIPhonePort" name="GsxWSEmeaIPhonePort"/>
    </client>
    

    【讨论】:

      【解决方案2】:

      如果您希望能够连接到在另一台服务器上运行的服务,那么您需要将 URL 行为更改为动态 - 请参阅这篇文章:

      http://www.codeproject.com/Articles/12317/How-to-make-your-Web-Reference-proxy-URL-dynamic

      这将允许您通过更改配置文件来引用在不同 URL 上运行的相同 Web 服务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多