2013-03-19 112 views
0

我有一个关于为Web服务生成的代理类的问题。基本上我试图给我的解决方案添加一个Web服务引用,但是我不能因为缺少discorvery文件,所以我做了大量的ppl在互联网上说,通过用WSDL生成一个代理类然后安装它并用它。WSDL生成的代理类

所以基本上我有一个很好的代理类,但是我如何使用它,当然我可以实现它并调用方法,但它如何连接到Internet上某些服务器上的实际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> 

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

但是,当在我的课,我有这个作为构造函数与'本地主机'的网址,但Web服务正在其他服务器上运行,所以是的,这是正常的,我将无法连接。

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

但是我现在该如何正确使用它呢?

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

任何想法呢?

回答

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>