Пример #1
0
        static async Task GenerateFault(ExceptionReceiveContext context)
        {
            Guid?messageId;
            Guid?requestId;

            string[] messageTypes = null;

            if (context.TryGetPayload(out ConsumeContext consumeContext))
            {
                messageId    = consumeContext.MessageId;
                requestId    = consumeContext.RequestId;
                messageTypes = consumeContext.SupportedMessageTypes.ToArray();
            }
            else
            {
                messageId = context.TransportHeaders.Get("MessageId", default(Guid?));
                requestId = context.TransportHeaders.Get("RequestId", default(Guid?));
            }

            ReceiveFault fault = new ReceiveFaultEvent(HostMetadataCache.Host, context.Exception, context.ContentType?.MediaType, messageId, messageTypes);

            var faultEndpoint = await GetFaultEndpoint(context, consumeContext, requestId).ConfigureAwait(false);

            await faultEndpoint.Send(fault).ConfigureAwait(false);
        }
Пример #2
0
        static async Task GenerateFault(ExceptionReceiveContext context)
        {
            Guid?messageId;
            Guid?requestId;

            string[] messageTypes = null;

            if (context.TryGetPayload(out ConsumeContext consumeContext))
            {
                messageId    = consumeContext.MessageId;
                requestId    = consumeContext.RequestId;
                messageTypes = consumeContext.SupportedMessageTypes.ToArray();
            }
            else
            {
                messageId = context.GetMessageId();
                requestId = context.GetRequestId();
            }

            if (context.PublishFaults || consumeContext?.FaultAddress != null || consumeContext?.ResponseAddress != null)
            {
                ReceiveFault fault = new ReceiveFaultEvent(HostMetadataCache.Host, context.Exception, context.ContentType?.MediaType, messageId, messageTypes);

                var faultEndpoint = await context.GetReceiveFaultEndpoint(consumeContext, requestId).ConfigureAwait(false);

                await faultEndpoint.Send(fault).ConfigureAwait(false);
            }
        }
Пример #3
0
        static void GenerateFault(ExceptionReceiveContext context)
        {
            IPublishEndpoint publishEndpoint;
            Guid?            faultedMessageId;

            if (context.TryGetPayload(out ConsumeContext consumeContext))
            {
                publishEndpoint  = consumeContext;
                faultedMessageId = consumeContext.MessageId;
            }
            else
            {
                faultedMessageId = context.TransportHeaders.Get("MessageId", default(Guid?));

                publishEndpoint = context.PublishEndpointProvider.CreatePublishEndpoint(context.InputAddress);
            }

            ReceiveFault fault = new ReceiveFaultEvent(HostMetadataCache.Host, context.Exception, context.ContentType.MediaType, faultedMessageId);

            var contextPipe = new ConsumeSendContextPipe <ReceiveFault>(consumeContext);

            var publishTask = publishEndpoint.Publish(fault, contextPipe, context.CancellationToken);

            context.AddPendingTask(publishTask);

            context.AddPendingTask(context.NotifyFaulted(context.Exception));
        }
        void GenerateFault(ExceptionReceiveContext context)
        {
            Guid?faultedMessageId = context.TransportHeaders.Get("MessageId", default(Guid?));

            ReceiveFault fault = new ReceiveFaultEvent(HostMetadataCache.Host, context.Exception, context.ContentType.MediaType, faultedMessageId);

            var publishEndpoint = _publishEndpoint.CreatePublishEndpoint(context.InputAddress);

            var publishTask = publishEndpoint.Publish(fault, context.CancellationToken);

            context.AddPendingTask(publishTask);

            context.AddPendingTask(context.NotifyFaulted(context.Exception));
        }
        public void Should_serialize_fault_from_serializable_exception() {

            Exception ex = null;
            try {
                throw new Exception("Boom");
            }
            catch (Exception e) {
                ex = new AggregateException(e);
            }
            var fault = new ReceiveFaultEvent(HostMetadataCache.Host, ex, "Foo", Guid.Empty);


            TestCanSerialize(fault);
        }
Пример #6
0
        public void Should_serialize_fault_from_serializable_exception()
        {
            Exception ex = null;

            try {
                throw new Exception("Boom");
            }
            catch (Exception e) {
                ex = new AggregateException(e);
            }
            var fault = new ReceiveFaultEvent(HostMetadataCache.Host, ex, "Foo", Guid.Empty);


            TestCanSerialize(fault);
        }
Пример #7
0
        void TestCanSerialize(ReceiveFaultEvent fault)
        {
            var bytes = Serialize(fault);

            bytes.Length.ShouldBeGreaterThan(0);
        }
 void TestCanSerialize(ReceiveFaultEvent fault) {
     var bytes = Serialize(fault);
     bytes.Length.ShouldBeGreaterThan(0);
 }