2010-02-03 54 views
2

這裏是我的情況:從INPROC切換到SQL Server給我SQL超時(無連接最大池大小,類型化數據集)

我有一個LAN網絡和數據庫服務器(SQL Server 2005中)。

網絡服務器(iis6)有幾個應用程序池和網站使用asp.net會話inproc正常運行。兩臺服務器都運行win 2k3

現在我從inproc切換到SQL Server,並且我收到很多SQL超時過期的消息。但只能從一個將會話移動到SQL Server的Web應用程序。所有其他網站不受影響。超時發生在使用inproc時正常運行正常的數據庫查詢。

如何解決此問題?

在此先感謝!

最好的問候,

JP

編輯:根據要求我它使用SQL Server中的Web應用程序的web.config文件:

<sessionState 
     mode="SQLServer" 
     timeout="60" sqlConnectionString="Data Source=192.168.1.80;Persist Security Info=True;User ID=aspstate;Password=state" 
     /> 

我也忘了提問題的網站與SQL Server共享一個運行inproc的Web應用程序的應用程序池。我只是將這兩個網絡應用程序分解到他們自己的應用程序池。但我認爲這不會解決超時問題。奇怪的是,所有其他網站保持良好運行

編輯2:我今天收到此消息時,我再次嘗試從inproc切換到sqlserver。數據訪問我用了很多類型化數據集(*的.xsd)我的web應用程序是 這裏每天大約2K的獨立訪問者的電子商務網站的消息:

Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached. 
+0

請提供會話狀態的web.config條目。 –

回答

1

這聽起來像你的一個特定的應用程序正在泄漏連接並填滿sql server的連接池導致超時。追蹤這些問題會非常令人沮喪,請看一下探查器應用程序和工具,如procexp

+0

但如何來,當我使用inproc,這不會發生? –

+0

使用它來管理會話狀態所帶來的額外開銷也可能會推動它超過現在之前泄漏僅在表面之下的極限。 –

+0

克里斯,你好,這聽起來很不錯。你能給我一些針對procesxp的指針嗎?我已經發現哪個w3wp.exe是我的應用程序池的相應的Web應用程序。它只在tcp/ip標籤 –