示例#1
0
        void OnServiceFault(ServiceFault message)
        {
            _log.ErrorFormat("Fault on {0}: {1}", message.ServiceName, message.ToLogString());

            if (message.ServiceName == AppDomain.CurrentDomain.FriendlyName)
            {
                // we caught an unhandled exception, so what should we do? How about restarting all the services?

                if (_stopping == false)
                {
                    _actorCache.Each((name, x) => x.Send(new RestartService(name)));
                }
            }

            if (_stopping)
            {
                if (_actorCache.Has(message.ServiceName))
                {
                    _actorCache[message.ServiceName].Send(new UnloadService(message.ServiceName));
                }
            }

            EventChannel.Send(message);
        }