2011-07-26 86 views
5

我有一个Silverlight 4应用程序与运行IIS 7.5的服务器进行通信,该服务器托管了许多我自己的WCF服务。该应用程序在99%的时间内运行愉快,但用户报告说,应用程序一天会冻结几次,或者在应用程序的各个位置生成错误消息。Silverlight客户端和WCF服务之间的间歇性通信问题

我打开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&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> 

我然后跑提琴手在用户的机器上,发现了以下错误正在发生:

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秒)的特定量,如果没有响应已收到取消当前的请求,然后再试一次

+0

你检查,如果你的服务方法抛出异常? – Jehof

+0

Jehof - 服务方法不会抛出异常。错误发生后,您可以进行完全相同的服务方法调用,并且它将起作用。 –

+0

你检查了服务器的事件日志吗? – Jehof

回答

相关问题