Craig,

Yes, that's the code and the channel is aborted. This however must
leave the session attached/active (or something) because after the
client then makes 10th consecutive call the next call times out due to
exceeding maxConcurrentSessions.
The PerformInvocation method in WcfRemotingInterceptor then throws a
TimeoutException as the service is no longer responding due to no more
sessions being available. A client call cannot be made then until a
session times out on the service freeing one up.
I can send a simple solution to demonstrate the issue.

Thanks Daniel

On Aug 30, 8:03 pm, Craig Neuwirt <[email protected]> wrote:
> Hey Daniel,
>
>   Isn't the code in question something like
>
>                                         try
>                                         {
>                                                 if (timeout.HasValue)
>                                                 {
>                                                         
> comm.Close(timeout.Value);
>                                                 }
>                                                 else
>                                                 {
>                                                         comm.Close();
>                                                 }
>                                         }
>                                         catch
>                                         {
>                                                 comm.Abort();
>                                         }
>
> If an exception occurs, the channel should be aborted.  Is there something 
> else that needs to be
> done to close it properly?
>
> thanks,
>  craig
>
> On Aug 30, 2010, at 1:15 AM, Daniel Richardson wrote:
>
>
>
> > True, it isn't bubbling up but this means the communication channel
> > isn't being closed properly and aborted.
> > This in itself wouldn't be too much of a problem but if you have a
> > default WCF configuration then for a service the
> > maxConcurrentSessions="10". If you then make the same service call
> > repeatedly in succession then after the 10th call the WCF service then
> > times out due to all the sessions being taken up, due to the channel
> > not being successfully released.
> > This then is a problem. The maxConcurrentSessions can be increased but
> > this isn't correcting the issue.
>
> > On Aug 27, 7:37 pm, Craig Neuwirt <[email protected]> wrote:
> >> Zero is chosen to avoid excessive waiting on disposal.  It is in a 
> >> try/catch block so it shouldn't be bubbling up.
>
> >> On Aug 27, 2010, at 4:49 AM, Daniel Richardson wrote:
>
> >>> The WcfChannelHolder class though doesn't appear to use this value.
> >>> Both the RefreshChannel and Dispose method are hardcoded to use
> >>> TimeSpan.Zero when calling WcfUtils.ReleaseCommunicationObject??
>
> >>> On Aug 27, 1:07 pm, John Simons <[email protected]> wrote:
> >>>> Hi Daniel,
>
> >>>> When you add the wcffacility to the container you can specify the 
> >>>> timeout:
> >>>> container.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
>
> >>>> Cheers
> >>>> John
>
> >>>> ________________________________
> >>>> From: Daniel Richardson <[email protected]>
> >>>> To: Castle Project Users <[email protected]>
> >>>> Sent: Fri, 27 August, 2010 2:28:53 PM
> >>>> Subject: WcfIntegration - timeout exception?
>
> >>>> Hi,
>
> >>>> I am using the WcfIntegration client side to instantiate my services.
> >>>> The lifestyle is transient (this is a requirement of my design) so I
> >>>> understand that I need to manage the lifecycle of the components. I am
> >>>> using the below code to instantiate and call my service (where the
> >>>> ComponentContainer is a wrapper around IWindsorContainer).
>
> >>>> This however results in a call to the Dispose method on
> >>>> WcfChannelHolder, which is throwing an exception due to the call to
> >>>> release the communication object...
> >>>> WcfUtils.ReleaseCommunicationObject(Channel, TimeSpan.Zero);
> >>>> This results in a System.TimeoutException when attempting to close the
> >>>> channel.
>
> >>>> Why is the timeout set to zero? Is anyone else encountering this
> >>>> issue? Can this be made configurable somehow?
>
> >>>>     var search = ComponentContainer.Resolve<ISearchService>();
> >>>>     try
> >>>>     {
> >>>>         var result = search.PolicySearch(new PolicySearchRequest
> >>>>         {
> >>>>             RiskReference = "abc"
> >>>>         });
> >>>>         System.Console.WriteLine("count: " + result.ResultCount);
> >>>>     }
> >>>>     finally
> >>>>     {
> >>>>         ComponentContainer.Release(search);
> >>>>     }
>
> >>>> Thanks
>
> >>>> --
> >>>> You received this message because you are subscribed to the Google Groups
> >>>> "Castle Project Users" group.
> >>>> To post to this group, send email to 
> >>>> [email protected].
> >>>> To unsubscribe from this group, send email to
> >>>> [email protected].
> >>>> For more options, visit this group 
> >>>> athttp://groups.google.com/group/castle-project-users?hl=en.
>
> >>> --
> >>> You received this message because you are subscribed to the Google Groups 
> >>> "Castle Project Users" group.
> >>> To post to this group, send email to 
> >>> [email protected].
> >>> To unsubscribe from this group, send email to 
> >>> [email protected].
> >>> For more options, visit this group 
> >>> athttp://groups.google.com/group/castle-project-users?hl=en.-Hide quoted 
> >>> text -
>
> >> - Show quoted text -
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Castle Project Users" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/castle-project-users?hl=en.- Hide quoted 
> > text -
>
> - Show quoted text -

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to