예제 #1
0
        private void StartInternal()
        {
            _hostStub = new HostStub2();

            if (LogicalCallContextTraceListener.IsInitialized)
            {
                throw new InvalidOperationException("There is already a trace listener configured on this logical call context");
            }
            _traceListener = LogicalCallContextTraceListener.Current;

            Action <string> twh  = m => _role.TraceWrite(Identifier, m);
            Action <string> twlh = m => _role.TraceWriteLine(Identifier, m);

            _traceListener.TraceWrite     += twh;
            _traceListener.TraceWriteLine += twlh;

            Trace.Listeners.Add(_traceListener);

            try
            {
                _started.SetResult(new object());
                _role.TraceWriteLine(Identifier, "Role started in thread: " + Thread.CurrentThread.ManagedThreadId + " : " + Thread.CurrentThread.Name);
                _hostStub.Run(_assemblyFilePath, _configurationFilePath, _roleName, false);
            }
            catch (Exception ex)
            {
                _role.TraceWriteLine(Identifier, ex.ToString());
            }
            finally
            {
                _traceListener.TraceWrite     -= twh;
                _traceListener.TraceWriteLine -= twlh;
                _completed.SetResult(new object());
            }
        }
예제 #2
0
        private void StartInternal()
        {
            ConfigurationManipulation.RemoveAzureTraceListenerFromConfiguration(_configurationFilePath);
            //CopyStubAssemblyToRoleDirectory(_appDomainSetup.ApplicationBase, _role);
            _hostStub = new HostStub2();

            if (LogicalCallContextTraceListener.IsInitialized)
                throw new InvalidOperationException("There is already a trace listener configured on this logical call context");
            _traceListener = LogicalCallContextTraceListener.Current;

            Action<string> twh = m => _role.TraceWrite(Identifier, m);
            Action<string> twlh = m => _role.TraceWriteLine(Identifier, m);
            _traceListener.TraceWrite += twh;
            _traceListener.TraceWriteLine += twlh;

            Trace.Listeners.Add(_traceListener);

            //AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => TryResolveAssembly(_assemblyFilePath, args);

            try
            {
                _started.SetResult(new object());
                _role.TraceWriteLine(Identifier, "Role started in thread: " + Thread.CurrentThread.ManagedThreadId + " : " + Thread.CurrentThread.Name);
                _hostStub.Run(_assemblyFilePath, _configurationFilePath, _serviceDefinitionFilePath, _roleName, false);
            }
            catch (Exception ex)
            {
                _role.TraceWriteLine(Identifier, ex.ToString());
            }
            finally
            {
                _traceListener.TraceWrite -= twh;
                _traceListener.TraceWriteLine -= twlh;
                _completed.SetResult(new object());
            }
        }