共用方式為


預計採用 Windows Communication Foundation:簡化未來整合

如果您目前使用 ASP.NET,且預期未來會使用 WCF,此主題提供指引,協助確保新的 ASP.NET Web 服務與 WCF 應用程式能順利搭配運作。

一般建議

任何新服務都採用 ASP.NET 2.0。 如此一來就能使用新版本的改進與增強功能。 但是,也可能會發生在相同的應用程式中同時使用 ASP.NET 2.0 與 WCF 元件。

通訊協定

使用 ASP.NET 2.0 的新功能以驗證是否符合 WS-I Basic Profile 1.1:

[WebService(Namespace = "http://tempuri.org/")]  
[WebServiceBinding(  
     ConformsTo = WsiProfiles.BasicProfile1_1,  
     EmitConformanceClaims=true)]  
public interface IEcho  

符合 WS-I Basic Profile 1.1 的 ASP.NET Web 服務,可以使用 WCF 預先定義的繫結 BasicHttpBinding 來與 WCF 用戶端互通。

服務開發

請避免使用 SoapDocumentServiceAttribute 屬性讓訊息不根據 SOAPAction HTTP 標頭而根據 SOAP 訊息的本文元素完整名稱傳送到方法。 WCF 使用 SOAPAction HTTP 標頭路由傳送訊息。

資料表示

根據預設,XmlSerializer 序列化型別的目標 XML 在語意上與 DataContractSerializer 序列化型別的目標 XML 是一樣的 (前提是 XML 的命名空間已明確定義)。 定義資料型別以搭配用於未來可能採用 WCF 的 ASP.NET Web 服務時,請執行下列步驟:

  1. 使用 .NET Framework 類別,而不是 XML 結構描述來定義型別。

  2. 僅將 SerializableAttributeXmlRootAttribute 新增至類別,並使用後者明確定義該型別的命名空間。 請勿從 System.Xml.Serialization 命名空間新增其他屬性,以控制 .NET Framework 類別轉譯成 XML 的方式。

採用這個方法之後,您稍後應該可以藉由新增 DataContractAttributeDataMemberAttribute,將 .NET 類別納入資料合約中,而不用特別提醒針對傳輸需要而序列化類別的目標 XML。 WCF 應用程式能將 ASP.NET Web 服務在訊息中使用的型別當做資料合約處理,不僅帶來多項效益,也提高了 WCF 應用程式效能。

安全性

請避免使用 Internet Information Services (IIS) 提供的驗證選項。 WCF 用戶端不支援這些項目。 如果需要保護服務安全,請使用 WCF 提供的選項,因為這些選項的用途更廣且遵循標準通訊協定。

另請參閱