Okay, I think can explain the different behavior on dev versus QA. My
dev box is XP, which uses IIS 5, which has a limit of 10 connections.
This limit is being hit before the ScopeMachineryException shows up.
I have been able to catch and log the exception on QA. Here is the
stack trace:
ICallContextInitializer.BeforeInvoke threw an exception of type
Castle.ActiveRecord.Framework.Scopes.ScopeMachineryException:
Tried to unregister a scope that is not the active one
Stack Trace:
at
Castle.ActiveRecord.Framework.Scopes.AbstractThreadScopeInfo.UnRegisterScope
(ISessionScope scope)
at
Castle.ActiveRecord.Framework.Scopes.ThreadScopeAccessor.UnRegisterScope
(ISessionScope scope)
at Castle.ActiveRecord.Framework.Scopes.AbstractScope.Dispose()
at Rhino.Commons.ActiveRecordUnitOfWorkAdapter.Dispose() in c:
\SANDBOX\RhinoTools\rhino-commons\Rhino.Commons.ActiveRecord\UnitOfWork
\ActiveRecordUnitOfWorkAdapter.cs:line 100
at Mojo.Common.WebServices.UnitOfWorkContext.AfterInvoke(Object
correlationState) in c:\cruisecontrol\mojo\checkout\src\Mojo.Common
\WebServices\UnitOfWorkContext.cs:line 31
at
System.ServiceModel.Dispatcher.DispatchOperationRuntime.UninitializeCallContextCore
(MessageRpc& rpc)
Here is the class where the error occurs:
public class UnitOfWorkContext : ICallContextInitializer
{
private IUnitOfWork _unitOfWork;
public Object BeforeInvoke(InstanceContext instanceContext,
IClientChannel channel, Message message)
{
_unitOfWork = UnitOfWork.Start();
return null;
}
public void AfterInvoke(Object correlationState)
{
if (_unitOfWork != null)
{
_unitOfWork.Dispose();
_unitOfWork = null;
}
}
}
Thoughts?
On Jan 24, 4:55 pm, Ayende Rahien <[email protected]> wrote:
> I don't see it even remotely related to those, except for the machinery
> exception
>
> On Sat, Jan 24, 2009 at 5:46 PM, Tim Scott
> <[email protected]>wrote:
>
>
>
> > No, firewall is turned off. If it was firewall, I would expect to get
> > the error all the time. Since it happens under load, must be some
> > concurrency issue. BTW, I am using this:
>
> >http://elegantcode.com/2008/07/14/integrating-castle-windsor-and-nhib...
>
> > ...to make UnitOfWorkApplication work with WCF. Perhaps that's a
> > clue.
>
> > On Jan 24, 4:24 pm, Ayende Rahien <[email protected]> wrote:
> > > No idea.
> > > do you have some firewall?
>
> > > On Sat, Jan 24, 2009 at 5:20 PM, Tim Scott <[email protected]
> > >wrote:
>
> > > > When I run the load test against the QA machine, my application does
> > > > not log any errors. The only evidence of error is in the Windows
> > > > event log, which is what I put in my original message.
>
> > > > I ran the exact same load test against my dev machine, and my app does
> > > > log errors, but they are different. I cannot explain the different
> > > > behavior. I am getting two exceptions coming from the same place.
> > > > Here they are. As you can see they happen a ticks apart. I think
> > > > this is definitely off topic. I'm guessing the ScopeMachineryError on
> > > > QA is coming from Rhino Commons code but only as a side effect of the
> > > > real problem. I think the real problem is some misuse of WCF. Sorry
> > > > again that it's off topic, but any thoughts are appreciated.
>
> > > > Again, this error does not happen until I put the system under load.
>
> > > > 2009-01-24 14:48:58,140 [timscottmacxp1] [24] [] ERROR:
> > > > System.ServiceModel.Security.MessageSecurityException: The HTTP
> > > > request was forbidden with client authentication scheme 'Anonymous'.
> > > > ---> System.Net.WebException: The remote server returned an error:
> > > > (403) Forbidden.
> > > > at System.Net.HttpWebRequest.GetResponse()
> > > > at
>
> > System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply
> > > > (TimeSpan timeout)
> > > > --- End of inner exception stack trace ---
>
> > > > Server stack trace:
> > > > at
> > > > System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation
> > > > (TimeSpan timeout)
> > > > at System.ServiceModel.Security.SspiNegotiationTokenProvider.OnOpen
> > > > (TimeSpan timeout)
> > > > at
> > > > System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen
> > > > (TimeSpan timeout)
> > > > at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan
> > > > timeout)
> > > > at
>
> > System.ServiceModel.Security.CommunicationObjectSecurityTokenProvider.Open
> > > > (TimeSpan timeout)
> > > > at
> > > > System.ServiceModel.Security.SecurityUtils.OpenTokenProviderIfRequired
> > > > (SecurityTokenProvider tokenProvider, TimeSpan timeout)
> > > > at System.ServiceModel.Security.SymmetricSecurityProtocol.OnOpen
> > > > (TimeSpan timeout)
> > > > at
> > > > System.ServiceModel.Security.WrapperSecurityCommunicationObject.OnOpen
> > > > (TimeSpan timeout)
> > > > at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan
> > > > timeout)
> > > > at
>
> > System.ServiceModel.Channels.SecurityChannelFactory`1.ClientSecurityChannel`1.OnOpen
> > > > (TimeSpan timeout)
> > > > at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan
> > > > timeout)
> > > > at
>
> > System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.DoOperation
> > > > (SecuritySessionOperation operation, EndpointAddress target, Uri via,
> > > > SecurityToken currentToken, TimeSpan timeout)
> > > > at
>
> > System.ServiceModel.Security.SecuritySessionSecurityTokenProvider.GetTokenCore
> > > > (TimeSpan timeout)
> > > > at System.IdentityModel.Selectors.SecurityTokenProvider.GetToken
> > > > (TimeSpan timeout)
> > > > at
>
> > System.ServiceModel.Security.SecuritySessionClientSettings`1.ClientSecuritySessionChannel.OnOpen
> > > > (TimeSpan timeout)
> > > > at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan
> > > > timeout)
> > > > at System.ServiceModel.Channels.ServiceChannel.OnOpen(TimeSpan
> > > > timeout)
> > > > at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan
> > > > timeout)
> > > > at
>
> > System.ServiceModel.Channels.ServiceChannel.CallOpenOnce.System.ServiceModel.Channels.ServiceChannel.ICallOnce.Call
> > > > (ServiceChannel channel, TimeSpan timeout)
> > > > at
> > > > System.ServiceModel.Channels.ServiceChannel.CallOnceManager.CallOnce
> > > > (TimeSpan timeout, CallOnceManager cascade)
> > > > at System.ServiceModel.Channels.ServiceChannel.EnsureOpened
> > > > (TimeSpan timeout)
> > > > at System.ServiceModel.Channels.ServiceChannel.Call(String action,
> > > > Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object
> > > > [] outs, TimeSpan timeout)
> > > > at System.ServiceModel.Channels.ServiceChannel.Call(String action,
> > > > Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object
> > > > [] outs)
> > > > at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService
> > > > (IMethodCallMessage methodCall, ProxyOperationRuntime operation)
> > > > at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage
> > > > message)
>
> > > > Exception rethrown at [0]:
> > > > at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage
> > > > (IMessage reqMsg, IMessage retMsg)
> > > > at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke
> > > > (MessageData& msgData, Int32 type)
> > > > at
>
> > Mojo.Common.WebServices.ServiceContracts.IActivationService.ActivateInvitationWithDemoGiftCodeReward
> > > > (Int32 clientId, String email)
> > > > at
>
> > Mojo.Common.WebServices.ServiceFacade.ActivationServiceFacade.<>c__DisplayClassa.<ActivateInvitationWithDemoGiftCodeReward>b__9
> > > > (IActivationService x) in C:\LunaverseRepositories\MotivatorSystems
> > > > \Mojo\src\Mojo.Common\WebServices\ServiceFacade
> > > > \ActivationServiceFacade.cs:line 29
> > > > at
>
> > Mojo.Common.WebServices.ServiceFacade.ServiceFacadeBase`1.<>c__DisplayClass1`1.<Use>b__0
> > > > (T proxy) in C:\LunaverseRepositories\MotivatorSystems\Mojo\src
> > > > \Mojo.Common\WebServices\ServiceFacade\ServiceFacadeBase.cs:line 53
> > > > at Mojo.Common.WebServices.ServiceFacade.ServiceFacadeBase`1.Use
> > > > (Action`1 action) in C:\LunaverseRepositories\MotivatorSystems\Mojo\src
> > > > \Mojo.Common\WebServices\ServiceFacade\ServiceFacadeBase.cs:line 31
> > > > at Mojo.Common.WebServices.ServiceFacade.ServiceFacadeBase`1.Use
> > > > [TResult](Func`2 function) in C:\LunaverseRepositories\MotivatorSystems
> > > > \Mojo\src\Mojo.Common\WebServices\ServiceFacade
> > > > \ServiceFacadeBase.cs:line 51
> > > > at
>
> > Mojo.Common.WebServices.ServiceFacade.ActivationServiceFacade.ActivateInvitationWithDemoGiftCodeReward
> > > > (Int32 clientId, String email) in C:\LunaverseRepositories
> > > > \MotivatorSystems\Mojo\src\Mojo.Common\WebServices\ServiceFacade
> > > > \ActivationServiceFacade.cs:line 29
> > > > at
> > > > Mojo.Presentation.Service.Impl.PresentationService.ActivateInvtation
> > > > (ActivateInvitationRequest request) in C:\LunaverseRepositories
> > > > \MotivatorSystems\Mojo\src\Mojo.Presentation\Service\Impl
> > > > \PresentationService.cs:line 52
> > > > at
>
> > IPresentationServiceProxybd8ae9ec35ed46e3b8d576a3528f3e56.InvocationActivateInvtation_1.InvokeMethodOnTarget
> > > > ()
> > > > at Castle.DynamicProxy.AbstractInvocation.Proceed()
> > > > at
>
> > Castle.Facilities.AutomaticTransactionManagement.TransactionInterceptor.Intercept
> > > > (IInvocation invocation)
> > > > at Castle.DynamicProxy.AbstractInvocation.Proceed()
> > > > at Mojo.Common.Logging.LoggingInterceptor.Intercept(IInvocation
> > > > invocation) in C:\LunaverseRepositories\MotivatorSystems\Mojo\src
> > > > \Mojo.Common\Logging\LoggingInterceptor.cs:line 28
>
> > > > 2009-01-24 14:48:58,406 [timscottmacxp1] [23] [] ERROR:
> > > > System.ServiceModel.CommunicationException: An error occurred while
> > > > receiving the HTTP response to
> > > >http://localhost/MojoCoreServiceHost/ActivationService.svc.
> > > > This could be due to the service endpoint binding not using the HTTP
> > > > protocol. This could also be due to an HTTP request context being
> > > > aborted by the server (possibly due to the service shutting down). See
> > > > server logs for more details. ---> System.Net.WebException: The
> > > > underlying connection was closed: An unexpected error occurred on a
> > > > receive. ---> System.IO.IOException: Unable to read data from the
> > > > transport connection: An established connection was aborted by the
> > > > software in your host machine. --->
> > > > System.Net.Sockets.SocketException: An established connection was
> > > > aborted by the software in your host machine
> > > > at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset,
> > > > Int32 size, SocketFlags socketFlags)
> > > > at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32
> > > > offset, Int32 size)
> > > > --- End of inner exception stack trace ---
> > > > at System.Net.ConnectStream.Read(Byte[] buffer, Int32 offset, Int32
> > > > size)
> > > > at System.Net.HttpWebRequest.MakeMemoryStream(Stream stream)
> > > > --- End of inner exception stack trace ---
> > > > at System.Net.HttpWebRequest.GetResponse()
> > > > at
>
> > System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply
> > > > (TimeSpan timeout)
> > > > --- End of inner exception stack trace ---
>
> > > > Server stack trace:
> > > > at
> > > > System.ServiceModel.Security.IssuanceTokenProviderBase`1.DoNegotiation
> > > > (TimeSpan timeout)
> > > > at
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Rhino Tools Dev" 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/rhino-tools-dev?hl=en
-~----------~----~----~----~------~----~------~--~---