Exchange 2007 SP2 中的動態架構更新與驗證

 

適用版本: Exchange Server 2007 SP2

上次修改主題的時間: 2012-03-26

Exchange Server 2007 中的 Active Directory 驅動程式 (Microsoft.Exchange.Data.Directory.Dll) 是 Exchange Managed 程式碼用來存取 Active Directory 中組態的介面。Active Directory 容器中的物件會顯示直接從屬性或從屬性計算而來的內容。物件所公開的內容可以匯出為指令程式參數。

一般而言,Active Directory 架構定義相當靜態。當發行的更新包含新的組態資料時,目前的方法會在 App.config 檔 (XML 檔案中的 XML 值) 中實作這些設定。但是這項方法容易出錯,而且無法有效擴充。

Microsoft Exchange Server 2007 Service Pack 2 (SP2) 內含的 Active Directory 驅動程式現在支援下列各項:

  • 新增與架構變更無關的屬性。

  • 參照不存在架構中之屬性的能力。此驅動程式同時可在讀取新的屬性且未延伸架構時,允許 Exchange Managed 程式碼正常運作。在此情況下,當物件未設定屬性,或是屬性不存在架構中時,Active Directory 驅動程式會傳回預設值。根據預設,當您新增不存在架構中的屬性時,系統會在讀取作業期間提供這些屬性的預設值。

  • Microsoft Exchange Server 2010 程式碼相容性。

  • 在 Exchange 2007 SP2 問世之前,寫入不存在架構中的屬性會導致違反限制。包含在 Exchange 2007 SP2 中的 Active Directory 驅動程式會在架構不包含屬性值時,引進動態驗證程式碼以在新的屬性上執行額外的驗證。

    當您嘗試變更不存在 mayContain 參數中的屬性時,就會發生例外狀況錯誤。更新的 Active Directory 驅動程式可對例外狀況錯誤提供更詳細的資料。例如:

    SchemaNotExtended(string objectClass, string objectAttribute, string udpateAdded)=Object class {0} 未將 {1} 屬性當成有效的 mayContain 項目包含進去。您必須使用來自 {2} 的更新延伸架構以設定此屬性。

    其中 0 是最常衍生的物件類別,而 1 是不存在的 LDAP 屬性名稱。2 是新增值的未當地語系化更新名稱。