container.Register(Component.For(t).AsWcfClient(WcfEndpoint.FromConfiguration("*"))Endpoints defined in web.config.
Everything works great, but once in a while (a week +-) one of the proxies stops working until AppPool is restarted. Before using WcfFacility we used similar custom proxying using ChannelFactory building (new ChannelFactory<T>("*")) without any problem I can recall.
So the question is, as usual, what could be the source of the problem? Perhaps it's a configuration issue (lifestyle required?).
We use Core/Windsor 3.0.0.0.
In logs we see something like this:
System.NotSupportedException: Method VoteForDiscussion is not supported on this proxy, this can happen if the method is not marked with OperationContractAttribute or if the interface type is not marked with ServiceContractAttribute.
at Castle.Facilities.WcfIntegration.Proxy.WcfRemotingInterceptor.<>c__DisplayClass1.<PerformInvocation>b__0(WcfInvocation wcfInvocation) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Facilities.WcfIntegration\Client\Proxy\WcfRemotingInterceptor.cs:line 53
at Castle.Facilities.WcfIntegration.WcfInvocation.Proceed() in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Facilities.WcfIntegration\WcfInvocation.cs:line 44
at Castle.Facilities.WcfIntegration.RepairChannelPolicy.Apply(WcfInvocation wcfInvocation) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Facilities.WcfIntegration\Client\Policies\RepairChannelPolicy.cs:line 31
at Castle.Facilities.WcfIntegration.Proxy.WcfRemotingInterceptor.PerformInvocation(IInvocation invocation, IWcfChannelHolder channelHolder, Action`1 action) in c:\BuildAgent\work\9834359f44c23fee\src\Castle.Facilities.WcfIntegration\Client\Proxy\WcfRemotingInterceptor.cs:line 72
at Castle.DynamicProxy.AbstractInvocation.Proceed() in c:\BuildAgent\work\8689a06309d1ab0b\src\Castle.Core\DynamicProxy\AbstractInvocation.cs:line 170
at Castle.Proxies.IWcfChannelHolderProxy_1.VoteForDiscussion(Guid discussion, Guid argument)
at Foo.Bar.Web.Specific.Discussions.DiscussionManager.Vote(Guid discussionId, Guid argumentId, HttpContextBase context) in c:\BuildAgent\work\397ad3340da6dda6\Sources\Bar-Web-Specific\Discussions\DiscussionManager.cs:line 42
at Foo.Bar.Web.Controllers.DiscussionController.Vote(Guid discussionId, Guid argumentId) in c:\BuildAgent\work\397ad3340da6dda6\Sources\Bar-Web\Controllers\DiscussionController.cs:line 53
at lambda_method(Closure , ControllerBase , Object[] )
at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12()
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation)
at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
at Foo.Bar.Web.Specific.Windsor.WindsorActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) in c:\BuildAgent\work\397ad3340da6dda6\Sources\Bar-Web-Specific\Windsor\WindsorActionInvoker.cs:line 22
at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName)
at System.Web.Mvc.Controller.ExecuteCore()
at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
at System.Web.Mvc.MvcHandler.<>c__DisplayClass6.<>c__DisplayClassb.<BeginProcessRequest>b__5()
at System.Web.Mvc.Async.AsyncResultWrapper.<>c__DisplayClass1.<MakeVoidDelegate>b__0()
at System.Web.Mvc.MvcHandler.<>c__DisplayClasse.<EndProcessRequest>b__d()
at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)