首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

WCF 服務工廠全攻略:從指導包自動化到安全性互操作的企業級實踐

     編輯:關於.NET

服務工廠開發哲學

  • p&p 團隊採開放迭代開發:定期發布 CTP、社群回饋直接影響下版本
  • 參考實作驗證最佳實踐,發現遺漏模式
  • ASMX 版已發布,WCF 版開發中 (GotDotNet 社群預覽版)

WCF 指導包快速上手

  1. 安裝後 VS「新增專案」現 WCF 服務範本
  2. 初始方案結構四大專案:DataContracts、FaultContracts、ServiceContracts、ServiceImplementation
  3. 服務主機置於 Tests 資料夾
  4. 可解鎖重組結構、重新指派專案職責

指導導航器提供的自動化方案

指導導航器

數據約定

  • 從 XSD 生成:DataContractSerializer 支援子集,超集自動降級 XmlSerializer
  • 嚮導建立:指定類別名、XML 名稱/命名空間、成員 Order/IsRequired
  • 裝飾現有類別:自動加 [DataContract] 屬性
  • 驗證:檢查可序列化性
[DataContract(Namespace="...", Name="WinePreference")]
public class WinePreference {
    [DataMember(Name="Country", Order=1)] public string Country { get; set; }
    // ...
}

訊息約定

  • SOAP 訊息結構完全控制:Header/Body、是否展開
  • 可重用型別用 DataContract,單一請求/回應用 MessageContract
  • 嚮導生成 [MessageContract]、[MessageHeader]、[MessageBodyMember]

錯誤約定

  • 自定義 SOAP Fault 使用 DataContract 定義細節
  • [FaultContract] 標註操作,產生 WSDL 包含錯誤資訊
  • 客戶端可用 FaultException 捕獲強型別異常
  • 提供 DefaultFaultContract 基類 (ErrorId, ErrorMessage, CorrelationId)
[DataContract] public class RegistrationError : DefaultFaultContract {
    [DataMember] public string RegistrationDetails { get; set; }
}

服務約定與實作

  • 從 WSDL 生成:支援 WSDL 驅動開發
  • 嚮導建立:介面名、約定名/命名空間、Session 支援
  • 操作層級指定 Action、請求/回應型別、錯誤型別、Session 細節
  • 實作介面:生成骨架類別,拋 NotImplementedException
  • 轉換器:訊息型別 ↔ 業務實體型別轉換代碼生成

發布端點

  • 公開服務嚮導:指定實作類別、綁定類型 (basicHttpBinding/WSHttpBinding)
  • 自動生成 .svc、web.config <system.serviceModel>
  • 預設啟用 MEX 端點、HTTP GET 元資料
  • 客戶端「新增服務參考」自動生成 Proxy

   
    
      
    
   
    ...  
  
    
      
      
    
  

WCF 安全性指導包:企業級安全自動化

WCF 安全性方案

  • 啟用後專案右鍵選單現「服務工廠 - 安全性」
  • 涵蓋:Windows 帳戶/SQL Server/ADAM 身分存儲、Kerberos/直接認證、匿名+伺服器憑證
  • 嚮導自動化:端點/綁定/行為、伺服器憑證、訊息保護等級、角色提供者
  • 生成 web.config 即用
  • 客戶端「新增服務參考」自動導入安全設定

安全性選項治理:架構師的管控桿

修改可用安全設定

  • 方案右鍵 → 服務工廠 - 安全性 → 修改安全性設定
  • 勾選允許的認證類型 (如僅 Kerberos/X.509)
  • 限制訊息保護等級 (如僅簽名/加密)
  • 生成 SecurityConfiguration.xml 綁定方案

互操作性導向約束

  • 修改互操作設定嚮導
  • 選擇目標平台:WSE 3.0、BEA WebLogic 9.2 等
  • 自動過濾雙方支援的安全規範子集
  • 確保生成的服務能被目標客戶端正確調用

高階自訂:打造組織專屬指導包

  • GAT (Guidance Automation Toolkit) 開發自訂指導包
  • 文件:How to: Create a New Guidance Package that Includes your Configuration Settings
  • 結合 p&p 通用方案 + 領域特有方案 → 生產力/品質/一致性/可預測性提升

未來展望

  • 約定設計/版本控制/訊息驗證/部署/大訊息處理指導
  • 工作流整合 WCF 服務實作模式
  • 安全性配置驗證工具 (類 WSE Policy Advisor)

查詢 GotDotNet 服務工廠社群參與回饋:practices.gotdotnet.com/svcfactory

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved