I just committed an update that properly uses CloseTimeout overrides.  
Otherwise, the normal Close is used.  This should let Daniel get by his problem.

-craig

On Sep 6, 2010, at 6:42 PM, John Simons wrote:

> Craig,
> 
> Did u have time to have  a look at this yet?
> Any resolution?
> 
> Cheers
> John
> 
> 
> From: Daniel Richardson <[email protected]>
> To: Castle Project Users <[email protected]>
> Cc: Craig Neuwirt <[email protected]>
> Sent: Wed, 1 September, 2010 3:41:38 PM
> Subject: Re: WcfIntegration - timeout exception?
> 
> It didn't like my zip attachment. Try here (also sent an email)...
> http://cid-2d0aa55ad987c518.office.live.com/browse.aspx/.Public/Code?uc=1&lc=2057
> 
> On Aug 31, 9:29 pm, Craig Neuwirt <[email protected]> wrote:
> > Didn't get email yet.  Can you send it again
> >
> > On Aug 31, 2010, at 8:15 AM, Daniel Richardson wrote:
> >
> >
> >
> > > I have sent an email. Many thanks for looking into it.
> >
> > > On Aug 31, 8:03 pm, Craig Neuwirt <[email protected]> wrote:
> > >> Can you send me sample to demonstrate?
> >
> > >> On Aug 30, 2010, at 11:12 PM, Daniel Richardson wrote:
> >
> > >>> 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.-Hidequotedtext
> > >>>>>>>  -
> >
> > >>>>>> - 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.-Hidequoted
> > >>>>>  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 
> > > 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.
> 
> 
> 
> -- 
> 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.

-- 
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