private void StampInitialMessage(Message message)
 {
     if (this.packetRoutable)
     {
         PacketRoutableHeader.AddHeadersTo(message, null);
     }
 }
Esempio n. 2
0
 public RequestOneWayChannelFactory(OneWayBindingElement bindingElement, BindingContext context) : base(context.Binding, context.BuildInnerChannelFactory <IRequestChannel>())
 {
     if (bindingElement.PacketRoutable)
     {
         this.packetRoutableHeader = PacketRoutableHeader.Create();
     }
 }
Esempio n. 3
0
 protected override void AddHeadersTo(Message message)
 {
     base.AddHeadersTo(message);
     if (this.packetRoutableHeader != null)
     {
         PacketRoutableHeader.AddHeadersTo(message, this.packetRoutableHeader);
     }
 }
Esempio n. 4
0
 private Message ValidateMessage(Message message)
 {
     if (this.validateHeader && (message != null))
     {
         PacketRoutableHeader.ValidateMessage(message);
     }
     return(message);
 }
Esempio n. 5
0
                private bool HandleReceiveRequestComplete(IAsyncResult result)
                {
                    this.context = this.OnEndReceiveRequest(result);
                    if (this.context == null)
                    {
                        return(true);
                    }
                    bool         flag    = false;
                    IAsyncResult result2 = null;

                    try
                    {
                        this.message = this.context.RequestMessage;
                        this.message.Properties.Add(RequestContextMessageProperty.Name, new RequestContextMessageProperty(this.context));
                        if (this.validateHeader)
                        {
                            PacketRoutableHeader.ValidateMessage(this.message);
                        }
                        try
                        {
                            result2 = this.context.BeginReply(null, this.timeoutHelper.RemainingTime(), onReply, this);
                            flag    = true;
                        }
                        catch (CommunicationException exception)
                        {
                            if (DiagnosticUtility.ShouldTraceInformation)
                            {
                                DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Information);
                            }
                        }
                        catch (TimeoutException exception2)
                        {
                            if (DiagnosticUtility.ShouldTraceInformation)
                            {
                                DiagnosticUtility.ExceptionUtility.TraceHandledException(exception2, TraceEventType.Information);
                            }
                        }
                    }
                    finally
                    {
                        if (!flag)
                        {
                            this.context.Abort();
                            if (this.message != null)
                            {
                                this.message.Close();
                                this.message = null;
                            }
                        }
                    }
                    return((result2 == null) || (result2.CompletedSynchronously && this.HandleReplyComplete(result2)));
                }
Esempio n. 6
0
        public static void AddHeadersTo(Message message, MessageHeader header)
        {
            int index = message.Headers.FindHeader(DotNetOneWayStrings.HeaderName, DotNetOneWayStrings.Namespace);

            if (index == -1)
            {
                if (header == null)
                {
                    header = PacketRoutableHeader.Create();
                }
                message.Headers.Add(header);
            }
        }
Esempio n. 7
0
            private Message ProcessContext(RequestContext context, TimeSpan timeout)
            {
                if (context == null)
                {
                    return(null);
                }
                bool    flag           = false;
                Message requestMessage = null;

                try
                {
                    requestMessage = context.RequestMessage;
                    requestMessage.Properties.Add(RequestContextMessageProperty.Name, new RequestContextMessageProperty(context));
                    if (this.validateHeader)
                    {
                        PacketRoutableHeader.ValidateMessage(requestMessage);
                    }
                    try
                    {
                        context.Reply(null, new TimeoutHelper(timeout).RemainingTime());
                        flag = true;
                    }
                    catch (CommunicationException exception)
                    {
                        if (DiagnosticUtility.ShouldTraceInformation)
                        {
                            DiagnosticUtility.ExceptionUtility.TraceHandledException(exception, TraceEventType.Information);
                        }
                    }
                    catch (TimeoutException exception2)
                    {
                        if (DiagnosticUtility.ShouldTraceInformation)
                        {
                            DiagnosticUtility.ExceptionUtility.TraceHandledException(exception2, TraceEventType.Information);
                        }
                    }
                }
                finally
                {
                    if (!flag)
                    {
                        context.Abort();
                        if (requestMessage != null)
                        {
                            requestMessage.Close();
                            requestMessage = null;
                        }
                    }
                }
                return(requestMessage);
            }
 private bool EnqueueMessage(Message message)
 {
     if (this.validateHeader)
     {
         if (!PacketRoutableHeader.TryValidateMessage(message))
         {
             this.channel.Abort();
             message.Close();
             return(false);
         }
         this.validateHeader = false;
     }
     return(this.acceptor.EnqueueWithoutDispatch(message, this.onMessageDequeued));
 }