預計採用 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。ASP.NET Web 服務在訊息中使用的型別,WCF 應用程式能夠將其當做資料合約處理,提供除了其他益處以外更好的 WCF 應用程式效能。

安全性

請避免使用網際網路資訊服務 (IIS) 提供的驗證選項。WCF 用戶端並不支援這些選項。如果需要保護服務安全,請使用 WCF 提供的選項,因為這些選項的用途更廣並且是根據標準通訊協定。

請參閱

概念

預計採用 Windows Communication Foundation:簡化未來移轉