.NET Compact Framework 中的訊息
更新:2007 年 11 月
在 .NET Compact Framework 中實作的 Windows Communication Foundation (WCF) 子集提供建置訊息導向應用程式的統一程式設計模型。它可讓開發人員建置安全的訊息應用程式,不但能跨平台運作,同時也支援與桌上型電腦上的現有 WCF 服務互動。
![]() |
---|
.NET Compact Framework 3.5 版 (含) 以後版本支援 WCF。 |
架構
.NET Compact Framework 的 WCF 訊息層是在標準桌上型電腦 WCF 架構之後建立模型的。裝置支援訊息層,可讓裝置連接到桌上型電腦上現有的 WCF 服務。服務執行階段層不存在於裝置上。
下圖顯示通道堆疊、相關聯的通訊協定和 WCF 繫結項目。
.NET Compact Framework 上的 WCF 訊息層
WS-Security 1.0 版規格的支援包含使用 X.509 憑證的 SOAP 訊息安全性。
Message 類別是以 WS 定址標準為基礎建置的。
與桌上型電腦實作的差異
.NET Compact Framework 不支援桌上型電腦所支援的整套通訊協定和繫結。請參閱上一節中的架構圖,取得所支援特定通訊協定和繫結的相關資訊。
.NET Compact Framework 上不支援服務執行階段層。因此,如果要連接到桌上型電腦上的現有 WCF 服務,請注意下列事項:
Web.config 檔案中的部分設定必須變更。如需詳細資訊,請參閱 HOW TO:使用 HTTP 傳輸。
如果您要加入 System.ServiceModel 合約的裝置支援,可以使用 .NET Compact Framework ServiceModel Utility 工具 (NetCFSvcUtil.exe) 來產生 WCF 用戶端 Proxy。這項工具可實作 .NET Compact Framework 中許多合約參數的支援。NetCFSvcUtil.exe 隨附於 .NET Compact Framework 的 Power Toys 中。如需詳細資訊,請參閱 .NET Compact Framework 的 Power Toys (英文)。
如果不使用 NetCFSvcUtil,則可以使用 WCF ServiceModel Desktop Utility 工具 (SvcUtil.exe) 並後續處理產生的程式碼。在此情況下,您必須從產生的程式碼移除不支援的 System.ServiceModel 屬性。如需這些修改的詳細資訊和範例,請參閱 HOW TO:使用 HTTP 傳輸。
此外也支援完整 .NET Framework 中的 WCF 訊息型別和成員子集。
下一節將針對 WCF 安全性功能描述差異。
安全性。
.NET Compact Framework 中的 WCF 訊息支援 SOAP 訊息安全性,這相當於 WS-Security 功能的子集,而且以 X.509 憑證為基礎。WS-Security 是可置於任何支援傳輸最上層的應用程式層。WCF 訊息中支援的安全性繫結項目為 SecurityBindingElement 和 AsymmetricSecurityBindingElement。若要實作安全性功能,您必須將 X.509 憑證當做 WCF 用戶端 Proxy 建構函式中的參數,傳遞至 ClientCredentials 物件內部。
.NET Compact Framework 中的 WCF 也支援傳輸層級安全性。這包括支援 HttpsTransportBindingElement 和 BasicHttpSecurity。
實作 .NET Compact Framework 中的 WCF 安全性與桌上型電腦上的實作差異如下:
只支援 WS-Security 1.0 版的子集。
針對 SecurityAlgorithmSuite 類別,因作業系統的限制之故,只支援 Basic256Rsa15 屬性。
訊息標頭無法加密。
![]() |
---|
在實施延長日光節約時間期間,若預設時間戳記驗證設為五分鐘,使用訊息安全性的傳出訊息會因時間戳記驗證錯誤而失敗。延長日光節約時間是在三月的第二個星期日與四月的第一個星期日之間,以及十月最後一個星期日與十一月的第一個星期日之間實施。為解決此問題,請安裝日光節約時間 (DST) 2007 更新。這不適用於執行 Windows Mobile 5.0 Build 15096.3.0 (含) 以後版本或 Windows Mobile 6.0 (含) 以後版本的裝置。 |
部署
WCF 訊息 DLL 是隨 .NET Compact Framework CAB 檔案提供。Managed 組件安裝在全域組件快取中。
裝置的 WCF 訊息 DLL 包括:
System.ServiceModel.dll
System.Runtime.Serialization.dll
部署也包含 WCF Exchange Server Mail Transport 的部署。如需裝置和桌上型電腦部署的詳細資訊,請參閱 WCF Exchange Server Mail Transport。
記錄
桌上型電腦 .NET Framework 上的 WCF 支援三種記錄:追蹤、訊息和事件記錄。.NET Compact Framework 上的 WCF 只支援追蹤記錄來追蹤程式碼例外狀況,但不會記錄警告和錯誤訊息。您可以使用登錄機碼設定記錄。
若要記錄 WCF 資訊,您必須先啟用 .NET Compact Framework 的記錄。如需如何啟用記錄及如何啟用 WCF 追蹤記錄的詳細資訊,請參閱 HOW TO:建立記錄檔。
請參閱
概念
其他資源
Windows Communication Foundation (WCF) 開發和 .NET Compact Framework