WCF鏈接服務(wù)超時(shí)正確處理辦法講解
WCF客戶端在實(shí)際應(yīng)用中,有許多應(yīng)用技巧需要我們不斷的去積累經(jīng)驗(yàn)來掌握。這樣才能避免或者更好的解決一些應(yīng)用中出現(xiàn)的問題。在這里我們將會(huì)為大家介紹一下WCF鏈接服務(wù)超時(shí)的相關(guān)處理方法。#t#
調(diào)用服務(wù)器端時(shí),當(dāng)點(diǎn)擊十次后,客戶端就會(huì)出現(xiàn)死機(jī),然后是一份鐘超時(shí)。
System.TimeoutException: 對(duì)“http://localhost:3768/”的 HTTP 請(qǐng)求已超過為 00:01:00 分配的超時(shí)。為此操作分配的時(shí)間可能是較長超時(shí)的一部分。
查找原因后發(fā)現(xiàn)客戶端在使用完通道后,沒有進(jìn)行釋放。而服務(wù)器端默認(rèn)的連接數(shù)為10,所以10次后,服務(wù)器端的連接數(shù)沒有釋放,導(dǎo)致新的連接無法訪問服務(wù)。
WCF鏈接服務(wù)超時(shí)解決辦法如下:
1、首先保證客戶端每次建立的連接在使用完成后進(jìn)行關(guān)閉.即調(diào)用Close方法,否則此連接會(huì)在設(shè)置的會(huì)話后才自動(dòng)關(guān)閉(該自動(dòng)響應(yīng)時(shí)間一般為10分鐘,InactivityTimeOut屬性),期間任何客戶端也無法使用此服務(wù).
2、可以增加默認(rèn)連接連接數(shù).配置文件如下:
- < serviceThrottling maxConcurrentCalls="20"
maxConcurrentSessions="20" maxConcurrentInstances="30" />
說明:maxConcurrentCalls :***并發(fā)數(shù),默認(rèn)為16
maxConcurrentSessions :***的會(huì)話數(shù),主要針對(duì)于PerSession的情況,默認(rèn)為10
maxConcurrentInstances:***實(shí)例數(shù),默認(rèn)為26
以上就是WCF鏈接服務(wù)超時(shí)的相關(guān)介紹辦法。