public override void Post(SendOrPostCallback d, object state) { ComPlusActivityTrace.Trace(TraceEventType.Verbose, 0x50015, "TraceCodeComIntegrationEnteringActivity"); ServiceCall pIServiceCall = new ServiceCall(d, state); if (this.postSynchronous) { this.activity.SynchronousCall(pIServiceCall); } else { this.activity.AsynchronousCall(pIServiceCall); } ComPlusActivityTrace.Trace(TraceEventType.Verbose, 0x50017, "TraceCodeComIntegrationLeftActivity"); }
public void OnCall() { ServiceModelActivity activity = null; try { Guid guidLogicalThreadID = Guid.Empty; if (DiagnosticUtility.ShouldUseActivity) { IComThreadingInfo comThreadingInfo; comThreadingInfo = (IComThreadingInfo)SafeNativeMethods.CoGetObjectContext(ComPlusActivityTrace.IID_IComThreadingInfo); if (comThreadingInfo != null) { comThreadingInfo.GetCurrentLogicalThreadId(out guidLogicalThreadID); activity = ServiceModelActivity.CreateBoundedActivity(guidLogicalThreadID); } ServiceModelActivity.Start(activity, SR.GetString(SR.TransferringToComplus, guidLogicalThreadID.ToString()), ActivityType.TransferToComPlus); } ComPlusActivityTrace.Trace(TraceEventType.Verbose, TraceCode.ComIntegrationExecutingCall, SR.TraceCodeComIntegrationExecutingCall); this.callback(this.state); } catch (Exception e) { if (Fx.IsFatal(e)) { throw; } DiagnosticUtility.InvokeFinalHandler(e); } finally { if (activity != null) { activity.Dispose(); activity = null; } } }
public void OnCall() { ServiceModelActivity activity = null; try { Guid empty = Guid.Empty; if (DiagnosticUtility.ShouldUseActivity) { IComThreadingInfo info = (IComThreadingInfo)SafeNativeMethods.CoGetObjectContext(ComPlusActivityTrace.IID_IComThreadingInfo); if (info != null) { info.GetCurrentLogicalThreadId(out empty); activity = ServiceModelActivity.CreateBoundedActivity(empty); } ServiceModelActivity.Start(activity, System.ServiceModel.SR.GetString("TransferringToComplus", new object[] { empty.ToString() }), ActivityType.TransferToComPlus); } ComPlusActivityTrace.Trace(TraceEventType.Verbose, 0x50016, "TraceCodeComIntegrationExecutingCall"); this.callback(this.state); } catch (Exception exception) { if (Fx.IsFatal(exception)) { throw; } DiagnosticUtility.InvokeFinalHandler(exception); } finally { if (activity != null) { activity.Dispose(); activity = null; } } }