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.
