2013-03-19 108 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>