Oren - I already trieid that and I cannot cast to IDisposable. I get an
InvalidCastException.

Craig - I think I can work with that in my situation but if I had the
scenario where I have more than 10 clients I would experience the same
problem. If the clients are transient then I am always going to have one
open connection per client. I am not very comfortable with upping the number
of allowed connections, as per above, it would be hiding the underlying
issue.

Thanks,

Callum

On Wed, Nov 5, 2008 at 5:54 PM, Craig Neuwirt <[EMAIL PROTECTED]> wrote:

> I usually make my clients singleton.  They can be called from many threads.
>
>
>
> On Wed, Nov 5, 2008 at 11:38 AM, Callum Hibbert <[EMAIL PROTECTED]>wrote:
>
>> Craig - I think it was you who did some (most? all?) of the work on the
>> WCF integration, are you saying the client shouldn't be transient (in most
>> cases)?
>>
>> Oren - I only have a reference to "IMyWcfService" which does not implement
>> IDisposable. This is the same interface as the server-side service and it is
>> my understanding that this should not implement IDisposable. So how can I
>> close the service? I thought Castle would clean this up for me. Please
>> advise if otherwise. I can't dispose the COM component myself, I have to
>> trust the 3rd party application does this as it is that which instantiates
>> my plugin (no source code for that).
>>
>> Germán - I am working from the trunk but I have not encountered this issue
>> before and I use this Facility alot.
>>
>> Thanks,
>>
>> Callum
>>
>>
>> On Wed, Nov 5, 2008 at 5:28 PM, Germán Schuager <[EMAIL PROTECTED]>wrote:
>>
>>> Are you running from the trunk?
>>> Apparently a bug was introduced that makes the container hold references
>>> to transient components, thus preventing correct disposal.
>>>
>>> http://support.castleproject.org/projects/IOC/issues/view/IOC-ISSUE-132
>>>
>>>  On Wed, Nov 5, 2008 at 2:10 PM, Callum Hibbert <
>>> [EMAIL PROTECTED]> wrote:
>>>
>>>> Hello,
>>>>
>>>> I am using a third party product for which I have written a plugin. My
>>>> plugin is executed using COM, so I have something like this (very simple
>>>> example):
>>>>
>>>>     [Guid("my-guid")]
>>>>     [ClassInterface(ClassInterfaceType.None)]
>>>>     [ProgId("myProgId")]
>>>>     [ComVisible(true)]
>>>>     public class MyPlugin : ICustomActivity
>>>>     {
>>>>         private readonly IMyWcfService service;
>>>>
>>>>         public MyPlugin()
>>>>         {
>>>>                 service = Container.Resolve<IMyWcfService>();
>>>>         }
>>>>
>>>>         public string Execute(string xml) // This is the ICustomActivity
>>>> implementation
>>>>         {
>>>>                 string response = service.DoSomething();
>>>>                 return message;
>>>>         }
>>>>     }
>>>>
>>>> "Container" is a very simple wrapper around WindsorContainer. I am using
>>>> the WCF Integration facility so the "service" object is a WCF service
>>>> proxy/client. I have marked the object as transient, for example:
>>>>
>>>> <castle>
>>>>     <components>
>>>>         <component
>>>>             id="IMyWcfService"
>>>>             type="Company.Product.IMyWcfService, Company.Product"
>>>>             wcfEndpointConfiguration="MyWcfServiceClientEndpointConfig"
>>>>             lifestyle="transient" />
>>>>     </components>
>>>> </castle>
>>>>
>>>> My problem is that the "service" client is not being closed. If I run my
>>>> application under load, I hit the maximum 10 open connections and then 
>>>> start
>>>> to get errors for subsequent connections. I am unwilling to configure an
>>>> increase in the number of allowed connections because this would be hiding
>>>> the underlying problem.
>>>>
>>>> I have used Castle's WCF Integration on a lot of projects before and I
>>>> have not experienced this problem, though this is the first time COM has 
>>>> ben
>>>> thrown into the mix.
>>>>
>>>> Obviously, I have no hook to IDisposable. IMyWcfService does not
>>>> implement IDisposable (and imy understanding is that you should never do
>>>> that). Also, I cannot cast the proxy to IDisposable as a work around.
>>>>
>>>> Can anyone shed any light on what the problem might be? Is this
>>>> something to do with the fact that the plugin is called via COM and is not
>>>> disposed of correctly? How can I ensure the client is closed and disposed
>>>> properly (and in a timely manner)?
>>>>
>>>> Any help or pointers greatly appreciated.
>>>>
>>>> Thanks,
>>>>
>>>> Callum
>>>>
>>>>
>>>>
>>>
>>>
>
> >
>

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