イベントコードのeventSubscriptonから退会しようとしています。私たちは、私たちが観察したことは一度「{} EventSubsciption .Unsubscribeが」と呼ばれていることである次のコードSDL Tridion EventSubscription UnSubscribe問題
[TcmExtension("EventHandlerExtension")]
public class EventHandler : TcmExtension, IDisposable
{
private EventSubscription componentSaveSubscription = null;
private EventSubscription componentPublishSubscription = null;
#region Public Methods
/// <summary>
/// Handle for Eventing System
/// </summary>
public EventHandler()
{
Subscribe();
}
/// <summary>
/// Subscribe Events
/// </summary>
public void Subscribe()
{
//News Article Page created when component Save
componentSaveSubscription = EventSystem.Subscribe<Component, SaveEventArgs>(OnComponentSavePost, EventPhases.TransactionCommitted);
//EventSystem.Subscribe<Component, SaveEventArgs>(OnComponentSavePost, EventPhases.TransactionCommitted);
componentPublishSubscription = EventSystem.Subscribe<Component, PublishOrUnPublishEventArgs>(OnComponentPublishOrUnPublishPost, EventPhases.TransactionCommitted);
//EventSystem.Subscribe<StructureGroup, PublishOrUnPublishEventArgs>(OnStructureGroupPublishInitiated, EventPhases.TransactionCommitted);
}
/// <summary>
/// IDisposable Implementation
/// </summary>
public void Dispose()
{
if (componentSaveSubscription != null) componentSaveSubscription.Unsubscribe();
if (componentPublishSubscription != null) componentPublishSubscription.Unsubscribe();
}}
を使用している、イベンティングは、動作すると想定されるため、後続のイベントのために働いて停止します。イベントシステム関連のサービスが再起動されると、イベントコードは最初に期待どおりに機能し、その後のイベント(それが動作していたはずのイベント)で呼び出されることはありません。
?私が知る限り、これは、ハンドラが実行されるモジュールがシャットダウンされているときにのみ発生します(潜在的にはそうではありません)。 –
Dispose()を実行しないと、期待通りに機能しますか?その後、処分をやめる? –