將 ASP.NET Web 服務移轉至 WCF

ASP.NET 提供 .NET Framework 類別程式庫與工具以建立 Web 服務,並提供在 Internet Information Services (IIS) 中裝載服務所需的功能。 Windows Communication Foundation (WCF) 會提供 .NET Framework 類別程式庫、工具和裝載功能,讓軟體實體可以使用任何通訊協定(包括 Web 服務使用的通訊協定) 進行通訊。 將 ASP.NET Web 服務遷移至 WCF 可以讓您的應用程式利用 WCF 專屬的新功能與改進措施。

WCF 與 ASP.NET Web 服務相較, 有幾項重要的優勢。 ASP.NET Web 服務工具僅供建置 Web 服務,而 WCF 則提供能夠在軟體實體必須互相進行通訊時使用的工具。 這將會減少程式開發人員為了要考慮到不同的軟體通訊案例所需要了解的技術數量,進而降低軟體開發資源的成本,並縮短完成軟體開發專案的時間。

在 Web 服務開發專案方面,WCF 也比 ASP.NET Web 服務支援更多的 Web 服務通訊協定。 這些額外的通訊協定可供更多高階方案使用,具備可靠的工作階段與交易。

WCF 比 ASP.NET Web 服務支援更多的傳輸訊息通訊協定。 ASP.NET Web 服務僅支援使用超文字傳輸協定 (HTTP) 傳送訊息。 WCF 則支援使用 HTTP、傳輸控制通訊協定 (TCP)、具名管道以及 Microsoft Message Queuing (MSMQ) 傳送訊息。 更重要的是,WCF 能夠擴充以支援其他傳輸通訊協定。 因此,使用 WCF 開發的軟體能夠與各種不同的其他軟體搭配運作,從而增加潛在投資報酬率。

在部署與管理應用程式方面,WCF 提供的功能比 ASP.NET Web 服務更多。 除了 ASP.NET 也有的組態系統之外,WCF 還提供組態編輯器、從傳送者到接收者及通過任何媒介數目的活動追蹤、追蹤檢視器、訊息記錄、大量效能計數器,以及 Windows Management Instrumentation 的支援。

與 ASP.NET Web 服務相較之下,WCF 具備了這些潛在優勢,如果您正在使用或考慮使用 ASP.NET Web 服務,便可以考慮下列幾種選擇:

  • 繼續使用 ASP.NET Web 服務並放棄 WCF 提供的好處。

  • 繼續使用 ASP.NET Web 服務並考慮在將來採用 WCF。 本章節中的主題說明如何盡可能地同時使用新的 ASP.NET Web 服務應用程式與未來的 WCF 應用程式。 本章節中的主題也說明如何建置新的 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 服務的功能。

注意

如果是由 IIS 5.x 裝載 WCF 服務並且已解除安裝 ASP.NET,則要特別小心。 由 IIS 5.x 裝載 WCF 服務時,如果已解除安裝 ASP.NET,則可能會要求服務的程式碼。 當執行 IIS 5.x 的作業系統已解除安裝 ASP.NET,並且已解除安裝 WCF 時,副檔名為 .svc 的檔案會被視為文字檔,並且將其內容 (包含任何原始程式碼) 傳回給要求者。

本章節會詳細描述這些選項、比較 ASP.NET Web 服務與 WCF,並且提供如何將 ASP.NET Web 服務程式碼遷移至 WCF 的指示。

另請參閱