ASP.NET 提供 .NET Framework 類別庫和工具來建置 Web 服務,以及用於在 Internet Information Services (IIS) 內裝載服務的設施。 Windows Communication Foundation (WCF) 提供 .NET Framework 類別庫、工具和裝載設施,讓軟體實體能夠使用任何通訊協議進行通訊,包括 Web 服務所使用的通訊協定。 將 ASP.NET Web 服務移轉至 WCF 可讓應用程式利用 WCF 特有的新功能和改進功能。
相較於 ASP.NET 網頁服務,WCF 具有幾個重要的優勢。 雖然 ASP.NET Web 服務工具僅供建置 Web 服務,但 WCF 會提供工具,可在必須建立軟體實體才能彼此通訊時使用。 這將減少開發人員需要知道的技術數目,以容納不同的軟體通訊案例,進而降低軟體開發資源的成本,以及完成軟體開發項目的時間。
即使是 Web 服務開發專案,WCF 也支援比 ASP.NET Web 服務支援更多的 Web 服務通訊協定。 這些額外的通訊協定提供更複雜的解決方案,包括可靠的會話和交易。
WCF 支援比 ASP.NET Web 服務更多的通訊協定來傳輸訊息。 ASP.NET Web 服務僅支援使用超文本傳輸通訊協定 (HTTP) 傳送訊息。 WCF 支援使用 HTTP 傳送訊息,以及傳輸控制通訊協定 (TCP)、命名管道,以及Microsoft消息佇列 (MSMQ)。 更重要的是,WCF 可以擴充以支援其他傳輸通訊協定。 因此,使用 WCF 開發的軟體可以調整為與其他各種軟體一起運作,從而增加投資的潛在回報。
WCF 提供比 ASP.NET Web 服務更豐富的部署和管理應用程式功能。 除了 ASP.NET 也有的設定系統之外,WCF 還提供設定編輯器、從傳送者經由任何數目的中介到接收者的活動追蹤、追蹤檢視器、訊息記錄、大量性能計數器,以及對 Windows Management Instrumentation 的支援。
假設 WCF 相對於 ASP.NET Web 服務的潛在優點,如果您使用 或考慮使用 ASP.NET Web 服務,您有幾個選項:
繼續使用 ASP.NET Web 服務,並放棄 WCF 所提供的優點。
繼續使用 ASP.NET Web 服務,以在未來某個時間採用 WCF。 本節中的主題說明如何最大化能夠搭配未來 WCF 應用程式使用新 ASP.NET Web 服務應用程式的前景。 本節中的主題也會說明如何建置新的 ASP.NET Web 服務,以便更輕鬆地將其遷移至 WCF。 不過,如果保護服務很重要,或需要可靠性或交易保證,或必須建構自定義管理設施,則採用 WCF 是較佳的選項。 WCF 是專為這類案例所設計。
採用 WCF 進行新的開發,同時繼續維護現有的 ASP.NET Web 服務應用程式。 這個選擇很可能是最佳選擇。 其會產生 WCF 的優點,同時節省修改現有應用程式以使用它的成本。 在此案例中,新的 WCF 應用程式可以與現有的 ASP.NET 應用程式共存。 新的 WCF 應用程式將能夠使用現有的 ASP.NET Web 服務,而且 WCF 可以透過 WCF ASP.NET 相容性模式,將新的作業功能程式設計成現有的 ASP.NET 應用程式。
採用 WCF 並將現有的 ASP.NET Web 服務應用程式移轉至 WCF。 您可以選擇此選項,透過 WCF 所提供的功能來增強現有的應用程式,或重現新、更強大的 WCF 應用程式內現有 ASP.NET Web 服務的功能。
備註
如果 WCF 服務由 IIS 5.x 裝載,且卸載 ASP.NET,則必須小心。 當 WCF 服務由 IIS 5.x 裝載時,如果卸載 ASP.NET,就可以要求服務的程式代碼。 當在執行 IIS 5.x 的作業系統上卸載 ASP.NET 和 WCF 時,副檔名為 .svc 的檔案會被視為純文字檔案,其中的內容,包括任何原始程式碼,會返回給請求者。
本節詳細說明這些選項、比較 ASP.NET Web 服務與 WCF,並提供如何將 ASP.NET Web 服務程式代碼移轉至 WCF 的指示。
另請參閱
- 預期採用 Windows Communication Foundation:緩解未來的遷移
- 期待採用 Windows Communication Foundation:促進未來整合
- 採用 Windows Communication Foundation
- 根據使用的用途和標準比較 ASP.NET Web 服務與 WCF
- 根據開發比較 ASP.NET Web 服務與 WCF