private CoordinationService GetCoordinationService()
 {
     if (this.coordinationService == null)
     {
         lock (this.proxyLock)
         {
             if (this.coordinationService == null)
             {
                 try
                 {
                     CoordinationServiceConfiguration config = new CoordinationServiceConfiguration {
                         Mode = CoordinationServiceMode.Formatter,
                         RemoteClientsEnabled = this.wsatConfig.RemoteActivationService(this.protocolVersion) != null
                     };
                     this.coordinationService = new CoordinationService(config, this.protocolVersion);
                 }
                 catch (MessagingInitializationException exception)
                 {
                     DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Error);
                     throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new TransactionException(System.ServiceModel.SR.GetString("WsatMessagingInitializationFailed"), exception));
                 }
             }
         }
     }
     return(this.coordinationService);
 }
Esempio n. 2
0
        //=============================================================================================
        //[SuppressMessage(FxCop.Category.Security, FxCop.Rule.AptcaMethodsShouldOnlyCallAptcaMethods, Justification = "We call PartialTrustHelpers.DemandForFullTrust().")]
        CoordinationService GetCoordinationService()
        {
            if (this.coordinationService == null)
            {
                lock (this.proxyLock)
                {
                    if (this.coordinationService == null)
                    {
                        // The demand is not added now (in 4.5), to avoid a breaking change. To be considered in the next version.

                        /*
                         * // We demand full trust because CoordinationService is defined in a non-APTCA assembly and can call Environment.FailFast.
                         * // It's recommended to not let partially trusted callers to bring down the process.
                         * System.Runtime.PartialTrustHelpers.DemandForFullTrust();
                         */

                        try
                        {
                            CoordinationServiceConfiguration config = new CoordinationServiceConfiguration();
                            config.Mode = CoordinationServiceMode.Formatter;
                            config.RemoteClientsEnabled = this.wsatConfig.RemoteActivationService(this.protocolVersion) != null;
                            this.coordinationService    = new CoordinationService(config, this.protocolVersion);
                        }
                        catch (MessagingInitializationException e)
                        {
                            DiagnosticUtility.TraceHandledException(e, TraceEventType.Error);
                            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                                      new TransactionException(SR.GetString(SR.WsatMessagingInitializationFailed), e));
                        }
                    }
                }
            }

            return(this.coordinationService);
        }
 private CoordinationService GetCoordinationService()
 {
     if (this.coordinationService == null)
     {
         lock (this.proxyLock)
         {
             if (this.coordinationService == null)
             {
                 try
                 {
                     CoordinationServiceConfiguration config = new CoordinationServiceConfiguration {
                         Mode = CoordinationServiceMode.Formatter,
                         RemoteClientsEnabled = this.wsatConfig.RemoteActivationService(this.protocolVersion) != null
                     };
                     this.coordinationService = new CoordinationService(config, this.protocolVersion);
                 }
                 catch (MessagingInitializationException exception)
                 {
                     DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Error);
                     throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new TransactionException(System.ServiceModel.SR.GetString("WsatMessagingInitializationFailed"), exception));
                 }
             }
         }
     }
     return this.coordinationService;
 }
Esempio n. 4
0
        //=============================================================================================
        //[SuppressMessage(FxCop.Category.Security, FxCop.Rule.AptcaMethodsShouldOnlyCallAptcaMethods, Justification = "We call PartialTrustHelpers.DemandForFullTrust().")]
        CoordinationService GetCoordinationService()
        {
            if (this.coordinationService == null)
            {
                lock (this.proxyLock)
                {
                    if (this.coordinationService == null)
                    {
                        // The demand is not added now (in 4.5), to avoid a breaking change. To be considered in the next version.
                        /*
                        // We demand full trust because CoordinationService is defined in a non-APTCA assembly and can call Environment.FailFast.
                        // It's recommended to not let partially trusted callers to bring down the process.
                        System.Runtime.PartialTrustHelpers.DemandForFullTrust();
                        */

                        try
                        {
                            CoordinationServiceConfiguration config = new CoordinationServiceConfiguration();
                            config.Mode = CoordinationServiceMode.Formatter;
                            config.RemoteClientsEnabled = this.wsatConfig.RemoteActivationService(this.protocolVersion) != null;
                            this.coordinationService = new CoordinationService(config, this.protocolVersion);
                        }
                        catch (MessagingInitializationException e)
                        {
                            DiagnosticUtility.TraceHandledException(e, TraceEventType.Error);
                            throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(
                                new TransactionException(SR.GetString(SR.WsatMessagingInitializationFailed), e));
                        }
                    }
                }
            }

            return this.coordinationService;
        }