I'll send it to your email box



________________________________
From: Craig Neuwirt <[email protected]>
To: [email protected]
Sent: Wednesday, 12 August, 2009 11:32:54 AM
Subject: Re: WcfFacility - ChannelFactory.Close() not being called?




On Tue, Aug 11, 2009 at 8:17 PM, John Simons <[email protected]> wrote:


>I'm trying to verify that the channel is getting closed everytime I
>call container.Release(proxy).
 
Can you send me a sample of your registration and I'll make sure it is behaving 
as it should

>
>The reason I'm chasing this up is because I'm currently using the
>WcfFacility at the backend and I would like to use it at the frontend
>>too.
>However when I swap my current implementation for the WcfFacility
>client side I see a performance hit and start getting Communication
>exception and timeouts
 
What kind of performance problem?  Are you creating a lot of transients? 

>
>On Aug 12, 11:12 am, Craig Neuwirt <[email protected]> wrote:
>>> On Tue, Aug 11, 2009 at 8:04 PM, John Simons 
>>> <[email protected]>wrote:
>
>>
>>
>>
>> > Craig,
>>
>> > So, you are saying that the ChannelFactory is reused but the Channel
>> > is not.
>>
>> Basically yes.  If a channel is faulted it is automatically refreshed.
>>>
>>
>>
>> > Also, you are saying that if I call container.Release(proxy); the
>> > channel will be disposed.
>> > I don't see this happening, I'm using the trunk version and have put
>>> > break points on your code pretty much everywhere I could find either
>> > Close() or Dispose(), and I can only see the channels being disposed
>> > when the I dispose of the windsor container.
>>>
>> So are you trying to verify the channels are closing or the ChannelFactory?
>> I tested that against the unit tests and it seems to perform as expected
>>
>>
>>
>> > Do I need to do this myself:
>>> > ((IClientChannel)proxy).Close();
>> > before calling container.Release(proxy);   ?
>>
>> Nope
>>
>>
>>
>> > Cheers
>> > John
>>
>> > On Aug 11, 10:23 pm, Craig Neuwirt <[email protected]> wrote:
>>> > > John,
>> > >   The ChannelFactory create multiple channels and thus will not be closed
>> > > when you release the proxy.  The actual Channel will be closed however.
>> > >  Then the component is released or the container is disposed of, the
>>> > > ChannelFactory will get closed.
>>
>> > > craig
>>
>> > > On Sun, Aug 9, 2009 at 11:52 PM, John Simons <[email protected]
>>> > >wrote:
>>
>> > > > Not sure if I'm using this facility correctly.
>>
>> > > > I'm using it on the client side.
>>
>> > > > I have configured my services to be LifeStyle.Transient because my
>>> > > > endpoint url changes dynamically.
>>
>> > > > Here is a snip of my global.asax:
>>
>> > > >        container = new WindsorContainer()
>> > > >                        .AddFacility("startable", new
>>> > StartableFacility())
>> > > >                        .AddFacility("mr", new MonoRailFacility())
>> > > >                        .AddFacility("loggingfacility", new
>>> > LoggingFacility
>> > > > (LoggerImplementation.Log4net, "Config/logging.config"))
>> > > >                        .AddFacility<WcfFacility>(f => f.DefaultBinding
>>> > =
>> > > >                                                       new WSHttpBinding
>> > > >                                                           {
>>
>> > > > BypassProxyOnLocal =
>>> > > > true,
>>
>> > > > MaxReceivedMessageSize = 331070,
>>
>> > > > UseDefaultWebProxy =
>> > > > false,
>>
>> > > >                                                           }
>>> > > >                        )
>> > > >                        .Register(
>>
>> >  Component.For<ChannelFactoryListener>(),
>> > > >                                  Component.For<ICore>()
>>> > > >                                      .LifeStyle.Transient
>> > > >                                      .ActAs(new DefaultClientModel()),
>> > > >                                  Component.For<IComputerManagement>()
>>> > > >                                      .LifeStyle.Transient
>> > > >                                      .ActAs(new DefaultClientModel()),
>> > > >                                  Component.For<IUserManagement>()
>>> > > >                                      .LifeStyle.Transient
>> > > >                                      .ActAs(new DefaultClientModel()),
>> > > >                                  Component.For<IPostManagement>()
>>> > > >                                      .LifeStyle.Transient
>> > > >                                      .ActAs(new DefaultClientModel()));
>>
>> > > > I than use it like this:
>>> > > > proxy = container.Resolve<ICore>(new { Endpoint = WcfEndpoint.At
>> > > > (uri) });
>>
>> > > > and once I'm done with it I call:
>> > > > container.Release(proxy);
>>>
>> > > > I assumed that by calling "container.Release(proxy);" on a Transient
>> > > > component the ChannelFactory.Close() would be called, but this doesn't
>> > > > seem to be the case. Am I doing something wrong?
>>> > > > I need the ChannelFactory to be disposed of otherwise all the Channels
>> > > > remain open!
>>
>> > > > BTW, the ChannelFactoryListener is just this:
>> > > > public class ChannelFactoryListener : AbstractChannelFactoryAware
>>> > > > {
>> > > >        public override void Created(ChannelFactory channelFactory)
>> > > >        {
>> > > >            channelFactory.Credentials.Windows.ClientCredential =
>>> > > > CredentialCache.DefaultNetworkCredentials;
>>
>> > > > channelFactory.Credentials.Windows.AllowedImpersonationLevel =
>> > > > TokenImpersonationLevel.Impersonation;
>>> > > >        }
>> > > > }
>>
>> > > > Cheers
>> > > > John
>
>



      
__________________________________________________________________________________
Find local businesses and services in your area with Yahoo!7 Local.
Get started: http://local.yahoo.com.au
--~--~---------~--~----~------------~-------~--~----~
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