2009-06-23 146 views
12

我需要升級Web服務以使用WCF而不是ASMX。如果Web服務的簽名保持不變,那麼已經調用ASMX服務的現有客戶端必須更改任何內容?無論如何仍然使用WCF但不強迫他們改變任何東西?將ASMX轉換爲WCF Web服務

+2

你能解釋爲什麼你需要升級嗎? – redsquare 2009-06-23 14:46:02

回答

12

選項1:

  1. 使用當前的ASMX的WSDL,使用svcutil.exe的
  2. 抓住生成的接口生成客戶端並創建一個基於該接口

    輸出上的WCF服務:一使用basicHttpBinding配置的新WCF端點。客戶需要更新他們發送消息的URL。

選項2:

  1. 重構您的ASMX代碼。將所有邏輯移入單獨的DLL。
  2. 創建一個WCF服務並使用重構後的DLL中的邏輯。

    輸出:2個端點,一個用於ASMX,另一個用於WCF

8

如果使用BasicHttpBinding爲新WCF服務,並實施相同的消息結構中的相同方法,現有的呼叫者應能夠調用這個新的WCF服務而不需要任何改變。

還有一個AspNetCompatibilityRequirements屬性爲了解決一些潛在的兼容性問題 - 請參閱上面的MSDN documentation

Marc