2011-02-01 164 views
2

我有一些與將Web服務(.asmx)轉換爲WCF相關的基本問題。我們有一個使用大量Web服務的正在運行的網站。這些Web服務使用具有業務邏輯的通用DLL。我們計劃將Web服務轉換爲WCF。由於有許多Web服務,我們計劃一次轉換一個。因此,首先會有一個WCF和許多Web服務(asmx)駐留在生產服務器上。我對如何使網站同時運行WCF和ASMX存在一些困惑。我將不勝感激,如果有人能回答我的疑問:關於將Web服務(asmx)轉換爲WCF的問題

  1. 我可以共享雙方的.asmx Web服務和WCF服務的同一web.config文件?如果是的話,那麼我需要做哪些改變才能確保兩者同時工作。添加ServiceModel標籤對現有的web.config是否足夠?

  2. 我可以使用web.config來存儲一些可以在兩個服務之間共享的配置參數 - WCF和.asmx嗎?如何調用它?

  3. 目前,常見的dll(業務層)正在使用HTTPContext.Current來緩存一些值。我怎樣才能確保代碼適用於WCF和.asmx調用?轉換代碼的最佳方式類似於:

    xslt = (XslCompiledTransform)HttpContext.Current.Cache[fileName]; 
    string XslFilePath = HttpContext.Current.Server.MapPath(@"~/xsl/" + fileName); 
    

    什麼是WCF等價物?

  4. 最後,如何在生產服務器上部署我的WCF更改?我只需要複製服務DLL和.svc文件?

我知道,我有這麼多的問題,這些可能看起來很簡單,但我很難找出它們。

+0

@user:我們實際上比較喜歡每個問題的一個問題。 – 2011-02-01 17:27:04

+1

@用戶:另外,順便說一句,你區分WCF和「Web服務」。 WCF是Web服務,還有更多,並取代ASMX。 – 2011-02-01 17:27:53

回答

2

1)我可以共享同一個web.config文件的.asmx web服務和 WCF服務嗎?

是的,絕對 - WCF的配置家住<system.serviceModel>部分(大部分),所以這是沒有問題的。

2)我可以使用web.config存儲一些配置參數 可以在兩個服務之間共享 - WCF和.asmx嗎?

如果您創建自己的自定義配置節或節組 - 是的,當然。無論是ASMX Web服務以及您的WCF的代碼可以讀取自定義配置節 - 這是所有標準的.NET的東西,真正的(參見:How to: Create Custom Configuration Sections Using ConfigurationSection

3)目前,常見的DLL(經營層)是使用 HTTPContext.Current來緩存一些值。

你可以打開你的WCF服務的ASP.NET器兼容性模式,這樣做,你一)配合自己永遠IIS,和b)獲得所有像通常的HTTP上下文和東西。請參閱:WCF Services and ASP.NET瞭解更多信息。

4)最後,如何在生產服務器上部署我的WCF更改? 只需要複製服務DLL和.svc文件?

複製服務DLL(s),SVC文件,使配置更改 - 就是這樣!