共用方式為


訂用帳戶

訂用帳戶數據位於訂用帳戶 COM+ 目錄中。 您可以使用元件服務系統管理工具,或使用ICOM管理員 Catalog::InstallComponent 介面以程序設計方式建立訂用帳戶

SubscriptionsForComponent 集合可用來新增、刪除或變更與訂閱相關的資訊。 SubscriptionsForComponent 集合是元件的子集合。 若要新增訂用帳戶,請取得元件的 SubscriptionsForComponent 集合,並使用 Add 方法將專案新增至集合。 若要設定訂閱對象的各種屬性,請使用 Value 屬性。 若要儲存變更,請在 SubscriptionsForComponent 集合物件上使用 SaveChanges

您也可以使用元件服務管理工具來修改訂用帳戶屬性的一些,但並非全部。 訂用帳戶會指定下列資訊:

  • 訂閱者的身分識別和位置
  • 傳遞方法
  • 要傳遞的事件方法
  • 訂閱者想要接收事件的事件類別元件的事件類別物件和 PublisherID 屬性

訂用帳戶與事件類別對象獨立存在。 您可以將 Enabled 屬性設定為 False,以停用訂用帳戶。 COM+ 事件不會呼叫停用的訂用帳戶。

這三種類型的訂用帳戶如下所示:

持續

永續性訂閱位於 COM+ 目錄中,與訂閱者的存留期無關。 持續訂閱在系統重新啟動後倖存下來。 一般而言,在訂閱者計算機上安裝應用程式並移除應用程式時,就會建立持續性訂閱。 建立永續性訂閱之後,每次應該將事件傳遞給訂閱者時,COM+ 事件就會啟動訂閱者。

當發行者具現化並呼叫事件類別物件時,對象會尋找 COM+ 目錄中的所有永續性訂閱,並建立每個物件的新實例。 建立程式可以是佇列元件的直接或透過Moniker。 依訂閱的 SubscriberMoniker 屬性指定訂閱者物件。 持續性訂閱所建立的訂閱者物件一律會在每次事件呼叫之後釋放。

瞬態

針對暫時性訂閱,您可以使用 TransientSubscriptions 集合,其父對像是根目錄物件。 暫時性訂閱會針對已經存在的特定訂閱者物件要求事件。 暫時性訂閱會儲存在 COM+ 目錄中,但如果事件系統或作業系統停止,則會刪除訂閱。 不同於持續性訂閱,暫時性訂閱會系結至特定物件,而且只會儲存在事件系統中。 暫時性訂閱比持續性訂閱更有效率,但您必須管理其物件生命週期。 如需註冊暫時性訂閱的相關信息,請參閱 註冊暫時性訂閱

每位使用者

每個使用者訂用帳戶只有在訂閱者登入事件系統的計算機時,才能傳遞事件。 當訂閱者登入時,事件系統會啟用 PerUser 旗標設定為 TRUE 的所有訂用帳戶,並將 UserName 設定為登入的用戶名稱。 當訂閱者註銷時,訂閱會停用。

只有當發行者和訂閱者位於同一部計算機上時,每位使用者訂閱才有效。 登入和註銷只會在發行者的計算機上偵測到,而不是訂閱者物件所在的計算機。

每當建立、修改或移除事件類別物件或訂閱時,事件系統就會使用中繼事件來通知感興趣的訂閱者。 若要從事件系統接收中繼事件,應用程式必須建立位於事件系統電腦上的訂用帳戶,並指定引發介面標識碼 (IID_IEventObjectChange)。

篩選 COM+ 中的事件

在 COM+ 中發佈和傳遞事件

COM+ 事件類別物件

搭配 COM+ 佇列元件使用 COM+ 事件