WorkflowRuntime.ServicesExceptionNotHandled Olay

Tanım

sınıfından türetilen WorkflowRuntimeService bir hizmet çağırdığında RaiseServicesExceptionNotHandledEvent(Exception, Guid)gerçekleşir.

C#
public event EventHandler<System.Workflow.Runtime.ServicesExceptionNotHandledEventArgs> ServicesExceptionNotHandled;

Olay Türü

Örnekler

Aşağıdaki kod örneği, bir iş akışı konağından işlevselliğin nasıl kullanılacağını WorkflowRuntime gösterir. Kod adlı bir yöntem OnExceptionNotHandledolan olay işleyicisiyle ilişkilendirirServicesExceptionNotHandled.

Bu kod örneği , Özel Kalıcılık Hizmeti Örneğinin bir parçasıdır.

C#
static void Main()
{
    using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())
    {
        try
        {
            // engine will unload workflow instance when it is idle
            workflowRuntime.AddService(new FilePersistenceService(true));

            workflowRuntime.WorkflowCreated += OnWorkflowCreated;
            workflowRuntime.WorkflowCompleted += OnWorkflowCompleted;
            workflowRuntime.WorkflowIdled += OnWorkflowIdle;
            workflowRuntime.WorkflowUnloaded += OnWorkflowUnload;
            workflowRuntime.WorkflowLoaded += OnWorkflowLoad;
            workflowRuntime.WorkflowTerminated += OnWorkflowTerminated;
            workflowRuntime.ServicesExceptionNotHandled += OnExceptionNotHandled;

            workflowRuntime.CreateWorkflow(typeof(PersistenceServiceWorkflow)).Start();

            waitHandle.WaitOne();
        }
        catch (Exception e)
        {
            Console.WriteLine("Exception \n\t Source: {0} \n\t Message: {1}", e.Source, e.Message);
        }
        finally
        {
            workflowRuntime.StopRuntime();
            Console.WriteLine("Workflow runtime stopped, program exiting... \n");
        }
    }
}

Açıklamalar

sınıfından WorkflowRuntimeService türetilen bir hizmet, aboneleri ServicesExceptionNotHandled yürütmesi sırasında işleyemediği bir özel durumun oluştuğunu olaya bildirmek için yöntemini çağırabilirRaiseServicesExceptionNotHandledEvent. Bir kurtarma mekanizması uygulamak için bu olaya abone olabilirsiniz.

Bu olay, bir iş akışı örneği henüz iş akışı çalışma zamanı altyapısı tarafından oluşturulmadığında ve bir özel durum oluştuğunda oluşturulur. Bu senaryoda, bir konak uygulamaya bir özel durumun oluştuğunu bildirmenin tek yolu bu olayı tetiklemektir. Ancak, iş akışı çalışma zamanı altyapısı bunu doğrudan çağırmaz. Bunun yerine, iş akışı çalışma zamanı altyapısı iş akışı örneğine bir özel durum sunar veya örnek yoksa çağırana geri atılır ve bu durumda aslında bu olayı tetikleyen hizmettir. Kendi kalıcılık veya zamanlayıcı hizmetinizi oluşturursanız, bu olayı temel RaiseServicesExceptionNotHandledEvent yöntem aracılığıyla kendiniz uygulamanız gerekir.

ServicesExceptionNotHandled Olay için, gönderen hizmeti Exception kullanan ve WorkflowEventArgs işlenemeyen iş akışı örneğinin öğesini içerir WorkflowRuntimeGuid.

Olayları işleme hakkında daha fazla bilgi için bkz. Olayları işleme ve oluşturma.

Şunlara uygulanır

Ürün Sürümler
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1