2010-07-06 63 views
2

我們最近開發了我們的頂級微軟的MVC框架(V2)的Intranet內部的Web應用程序的MVC應用程序的情況。這似乎奏效,但在發生一些尚未知的事件之後,我們發現數據庫查詢看起來不會產生任何結果,而且沒有發現任何異常,這一直困擾着我。如何調試與似乎不拋出任何異常

重新發布該應用程序不會改變的行爲,但在重新啓動應用程序池將完全恢復功能。

爲了完整起見,我們使用MVC應用的專用應用程序池,並連接到使用SQL身份驗證的SQL Server,它攜帶從其他主機的工作,而Web服務器是有一口悶氣。似乎沒有任何異常拋出(我們沒有捕捉任何異常,而內置的未處理的異常魔法沒有捕捉任何東西)。在這個實例中,我們沒有使用LINQ to SQL,而是SqlConnection/SqlCommand /存儲過程的ADO.Net方法,如果它們連接失敗或存儲過程失敗,通常會引發異常。我已經對應用程序進行了剖析,並且它不會出現泄漏任何資源。

我想我已經涵蓋了所有的角度,但還有什麼地方我應該進入查找問題的原因的取證?

編輯:我也許應該提到的是,我們正在使用NTLM身份驗證,並做像編輯的web.config(強制重新加載應用程序)的技巧沒有任何影響 - 我們要回收整個應用程序池修理。

+0

是否在完成所有數據庫連接後才處理它們?如果你用完了連接池,我希望得到一個異常,但值得一提的是... – GalacticCowboy 2010-07-06 11:32:30

+0

真的很明顯的建議,但以防萬一......你有一個緩存層即將過期,但沒有被重新填充? – 2010-07-06 11:34:51

+0

@GalacticCowboy我們所有的Sql對象都是使用包裝的,並儘快處理。 – 2010-07-06 11:42:19

回答

1

您是否嘗試過使用SQL profiler監視異常時的數據庫流量?

+0

我們已經嘗試過分析,並且正在看到請求經過,並且它們看起來完全沒有問題(儘管我需要與我的三重檢查本地友好的DBA) – 2010-07-06 11:45:21

+0

原來,它成功返回沒有結果 - 因爲有一個通過應用程序的路徑,這意味着配置數據的一個重要部分尚未加載,這是導致一個懶惰的初始化靜態屬性設置爲垃圾。 – 2010-07-24 19:32:17