對WCF數據量進行詳細介紹
希望我對WCF數據量的一點經驗能給大家帶來幫助,下面通過IIS服務器的真實處理,以及代碼和異常的使用問題,進行解釋說明,下面就把編制的代碼一一列數下來,歡迎大家學習研究。
昨天下午在作WCF數據量并發的測試,同時啟動40個客戶端進程,在碰到比較耗時的服務處理時,IIS服務器返回403錯誤。異常信息如下:]
- System.ServiceModel.Security.MessageSecurityException: System.Net.HttpWebRequest.GetResponse()
- System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
- Server stack trace:
- System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest request, HttpWebResponse response,
WebException responseException, HttpChannelFactory factory)- System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest request,
HttpWebResponse response, HttpChannelFactory factory, WebException responseException)- System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.
WaitForReply(TimeSpan timeout) System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)- System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
- System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
- System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
- System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
- System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
- Exception rethrown at [0]:
- System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
- System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
- terminal.ViolationService.IViolationService.QueryVioImg(String vioSeq)
- terminal.ViolationService.ViolationServiceClient.QueryVioImg(String vioSeq),terminal.Program.Main(String[] args)
通過各種方法監控WCF數據量的錯誤消息,可是這些出錯的調用都沒有到達WCF,所有監測WCF的地方和WCF的TraceLog都沒有任何的錯誤。隨后又拿出***法寶wireshark,抓包也看不到任何錯誤,就是客戶端請求了服務器一下,然后IIS就返回了403錯誤,并報告上面的異常。#t#
于是把WCF的服務部署到了Win2003server的iis6下面。這樣程序正常運行不會有任何錯誤。于是查了一下IIS5.1 造成403錯誤的原因。原來是IIS5.1的***連接數的問題。于是總結了一下:
同時修改了幾個方面:
1.windowsXP SP3的TCP連接數,改為512。(有專門的工具破解)
2.WCF數據量會話數,調用數和實例數