У меня есть приложение Silverlight 4, которое связывается с сервером под управлением IIS 7.5, на котором размещено несколько моих собственных служб WCF.Приложение успешно работает в 99% случаев, но пользователи сообщают, что несколько раз в день приложение будет зависать или сообщения об ошибках будут генерироваться в различных точках приложения.
Я включил трассировку WCF и следующие ошибкипроисходит:
<Exception>
<ExceptionType>System.ServiceModel.ProtocolException, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType>
<Message>The number of bytes available is inconsistent with the HTTP Content-Length header. There may have been a network error or the client may be sending invalid requests. </Message>
<StackTrace>
at System.ServiceModel.Channels.HttpInput.ReadBufferedMessage(Stream inputStream)
at System.ServiceModel.Channels.HttpInput.ParseIncomingMessage(Exception& requestException)
at System.ServiceModel.Channels.HttpChannelListener.HttpContextReceived(HttpRequestContext context, Action callback)
at System.ServiceModel.Activation.HostedHttpTransportManager.HttpContextReceived(HostedHttpRequestAsyncResult result)
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.HandleRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.BeginRequest()
at System.ServiceModel.Activation.HostedHttpRequestAsyncResult.OnBeginRequest(Object state)
at System.Runtime.IOThreadScheduler.ScheduledOverlapped.IOCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* nativeOverlapped)
at System.Runtime.Fx.IOCompletionThunk.UnhandledExceptionFrame(UInt32 error, UInt32 bytesRead, NativeOverlapped* nativeOverlapped)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
</StackTrace>
</Exception>
Затем я запустил Fiddler на компьютере пользователя и обнаружил следующие ошибки:
HTTP/1.1 504 Fiddler - Receive Failure
Content-Type: text/html; charset=UTF-8
Connection: close
Timestamp: 18:24:21.941
ReadResponse() failed: The server did not return a response for this request.
По результатам некоторых исследований выяснилось, что существует некоторая проблема связи между клиентоми сервер.Сервер является виртуальным частным сервером, с которым у меня никогда не возникало никаких проблем, и, просматривая журналы, он никогда не использует процессор / память.
Мои вопросы: 1. Могу ли я что-нибудь сделать дляотслеживать, что происходит более подробно или что-либо связанное с IIS или сервером, я могу настроить, чтобы избежать этой ошибки 2. В моем приложении Silverlight есть какой-то способ, которым я могу ждать определенное количество времени (например, 30 секунд), и если ответ не был полученотменить текущий запрос и повторить попытку