We are using WCF services hosted on IIS at middle tier and use a WPF client. We are seeing these errors in our production logs. From google i was pointed to a link here http://kennyw.com/indigo/150 that clearly says that this error is related to MaxConcurrentSessions.
The production log details below says that error happens when the WPF client is trying to open the WCF proxy connection using ICommunicationObject.Open() This error on our production system happens very frequently but i am unable to reproduce this error on my local setup. I tried to change the MaxConcurrentSessions to 1 and then opened 5 instances of the WPF application, on the WPF application the default dashboard has a timer running every 1 minute trying to get data, but still i am unable to reproduce this error.
My question is really when does this error happen, from the link above it says that this happens when the server is stressed out but in my test case above it should have been loaded. I also need to be able to reproduce this to even attempt to fix.
Any ideas if i am on the right path, is the MaxConcurrentSessions the right place to look at and how do i simulate this on local. Please help.
2/16/2012 4:10:40 PM:Information:Exception in the ServiceCall constructor: System.ServiceModel.CommunicationException:
The socket connection was aborted.
This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue.
Local socket timeout was '00:00:59.9687730'. --->System.Net.Sockets.SocketException:
An existing connection was forcibly closed by the remote host at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags) at System.ServiceModel.Channels.SocketConnection.ReadCore(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, Boolean closing)
--- End of inner exception stack trace ---
Server stack trace:
at System.ServiceModel.Channels.SocketConnection.ReadCore(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout, Boolean closing)
at System.ServiceModel.Channels.SocketConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.DelegatingConnection.Read(Byte[] buffer, Int32 offset, Int32 size, TimeSpan timeout)
at System.ServiceModel.Channels.ConnectionUpgradeHelper.InitiateUpgrade (StreamUpgradeInitiator upgradeInitiator, IConnection& connection, ClientFramingDecoder decoder, IDefaultCommunicationTimeouts defaultTimeouts, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.SendPreamble(IConnection connection, ArraySegment`1 preamble, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.DuplexConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.ClientFramingDuplexSessionChannel.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)