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


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