台灣最大程式設計社群網站
線上人數
1454
 
會員總數:246630
討論主題:190056
歡迎您免費加入會員
討論區列表 >> ASP.NET >> 請教如何避免 SemaphoreFullException 錯誤
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請教如何避免 SemaphoreFullException 錯誤
價值 : 50 QP  點閱數:4665 回應數:7
樓主

ken
門外漢
0 2
110 3
發送站內信

最近系統(windows2003)出現以下錯誤

例外狀況資訊:
例外狀況型別: SemaphoreFullException
例外狀況訊息: 將指定計數加入至號誌可能會使它超過其最大計數。

看了msdn說明,看不大懂,是我連線數太多了嗎?還是程序沒寫好?請教如何處理這個問題,因為一出現這個問題,asp.net就掛了。要重新啟動w3wp.exe

EventType clr20r3, P1 w3wp.exe, P2 6.0.3790.3959, P3 45d6968e, P4 system, P5 2.0.0.0, P6 4889de7a, P7 121a, P8 2e, P9 system.threading.semaphorefull, P10 NIL.


發生未處理的例外狀況,處理序已終止。

Application ID: /LM/W3SVC/1687038599/Root

Process ID: 5576

Exception: System.Threading.SemaphoreFullException

Message: 將指定計數加入至號誌可能會使它超過其最大計數。

StackTrace: 於 System.Threading.Semaphore.Release(Int32 releaseCount)
於 System.Data.ProviderBase.DbConnectionPool.CleanupCallback(Object state)
於 System.Threading._TimerCallback.TimerCallback_Context(Object state)
於 System.Threading.ExecutionContext.runTryCode(Object userData)
於 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
於 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
於 System.Threading._TimerCallback.PerformTimerCallback(Object state)

請在 http://go.microsoft.com/fwlink/events.asp 查看說明及支援中


本篇文章發表於2010-04-29 18:50
1樓
回應

RazgrizLee
捐贈 VP 給 RazgrizHsu 檢舉此回應
依錯誤訊息來看,應該是你程式寫的問題,讓w3wp.exe掛了...

你把code貼上來,大家比較容易替你找問題所在.
本篇文章回覆於2010-04-29 19:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

ken
檢舉此回應
我覺得也是我寫的問題,只是整個網站數十頁aspx,也不知道是哪一個,全貼上來有點困難,有何辦法可以知道哪里錯誤?我覺得應該是正常執行都沒問題,可是有時候user不知道點到哪里或填了些資料,就發生問題。
本篇文章回覆於2010-04-29 21:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

ken
檢舉此回應
還是說有一個方向或辦法,我可以除錯?
本篇文章回覆於2010-04-29 21:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

RazgrizLee
捐贈 VP 給 RazgrizHsu 檢舉此回應
我想這應該可以透過visual studio的偵錯功能來找出問題,

您應該先試著執行測試及Debug,或是在你的程式中加入一些log來做判斷,

比較好找出實際發生錯誤的地方
本篇文章回覆於2010-04-30 02:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

johnson
檢舉此回應
http://msdn.microsoft.com/zh-tw/library/system.threading.semaphorefullexception(v=VS.90).aspx
就程式寫錯了,讓w3wp.exe掛了
一個執行緒RUN起來會減號誌計數1次
執行緒完成會加回號誌計數1次
而你的程式讓同一個執行緒加回號誌計數2次以上
所以出現:將指定計數加入至號誌可能會使它超過其最大計數。
請查明你執行緒內的程式寫法
本篇文章回覆於2010-04-30 21:26
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
回應

johnson
檢舉此回應
請搜尋程式碼內是否有:"Release"
看你是否有用到此功能
此為加回號誌計數1次
本篇文章回覆於2010-04-30 21:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

a7
檢舉此回應
今天我也出現這問題
後來發現 我每開程式一次時 它會出自動幫你建立一次通訊port在右下角
ASP.net開發程式 伺服器 通訊port-XXXXX

萬一你右下角這個一堆 (我出現問題時 已經有9個)5個以上 就有這問題
把它全部關掉 在重開程式就好了
本篇文章回覆於2019-12-04 12:00
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.