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.
