2008-09-20 79 views
1

我們的Web服務由於各種原因(例如減少客戶端延遲)而分佈在不同的服務器上,並且它們並不總是最新的。而不是拋出一個異常時,存在的方法,因爲特定的Web服務是太舊了,這將是更好,如果我們可以在客戶端檢查服務是否調用它之前給定的方法迴應,否則將禁用功能(或解決它)。我可以檢查SOAP Web服務是否支持某種WebMethod?

有沒有辦法做到這一點?

回答

1

單元測試Web服務,以確保其簽名不破。當您編寫破壞方法簽名的代碼時,您會知道並可以相應地調整其他應用程序。

或者只是不要打破Web服務,並以一種可以讓它們進行版本化的方式發佈它們。與http://services.domain.com/MyService/V1.1/Service.asmx(用於.NET)一樣,這樣,當您發佈v1.2並進行重大更改時,使用v1.1的應用程序不會中斷。

我也想看看使用內部UDDI服務器,如果它真有那麼大一個Hasle城來管理您的Web服務的。使用UDDI的綠頁會告訴你你想知道關於服務的信息。

2

獲取WSDL(追加?wsdl到URL) - 你可以用任何你喜歡的方式解析。

0

當你在進行SOAP請求你只是發送HTTP請求到服務器。如果服務器理解它,它就會與HTTP 200和一些XML如果沒有它會送你一些錯誤HTTP代碼(404,500,...)

沒有通用的方式來響應,要求存在由Web服務公開的「方法」。嘗試使用WSDL暴露,如果它是自動的,或者只是嘗試使用「方法」併爲您在響應錯誤(你不必例外發送給用戶...)

而且,我不知道我是否理解你,但是你正在考慮兩次詢問服務器,一次檢查方法是否存在,其次是實際調用它,如果是這樣的話?如果沒有,我會檢查是否有錯誤,如果存在,則正常繼續。

相關問題