2011-07-26 16 views
5

Mam aplikację Silverlight 4, która komunikuje się z serwerem z programem IIS 7.5, który obsługuje wiele własnych usług WCF. Aplikacja działa szczęśliwie w 99% przypadków, ale użytkownicy zgłaszają, że kilka razy dziennie aplikacja zawiesi się lub komunikaty o błędach będą generowane w różnych punktach aplikacji.Sporadyczne problemy z komunikacją między klientem Silverlight a usługą WCF

Włączyłem WCF śledzenie i wystąpić następujące błędy:

<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&amp; 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> 

I pobiegł Skrzypek na komputerze użytkownika i stwierdzono następujące błędy występujące:

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. 

Z niektórych badań wygląda tak jak istnieje problem z komunikacją między klientem a serwerem. Serwer jest serwerem Virtual Private, z którym nigdy nie miałem żadnych problemów, a od przeglądania logów nigdy nie jest on maksymalny w stosunku do procesora/pamięci.

Moje pytania są następujące: 1. Czy jest coś mogę zrobić, aby śledzić, co dzieje się w sposób bardziej szczegółowy lub cokolwiek związane z IIS lub serwer mogę ustawić, aby uniknąć tego błędu 2. W mojej aplikacji Silverlight jest jakiś sposób ja można czekać określoną ilość czasu (np 30 sekund), a jeśli nie odpowiedź została otrzymaliśmy anulować bieżące żądanie i spróbuj ponownie

+0

cZY zaznaczone, jeśli Twoja metoda obsługi zgłasza wyjątek? – Jehof

+0

Jehof - metoda usługi nie rzuca wyjątku. Możesz wykonać to samo wywołanie metody usługi po błędzie i to zadziała. –

+0

Czy sprawdziłeś, dziennik zdarzeń serwera? – Jehof

Odpowiedz

Powiązane problemy