2010-09-16 69 views
1

這裏是我的情況:靜態內容和ASP.NET SQL會話

  • 使用SQL服務器會話(由於Web場)
  • 的customErrors是使用重定向
  • 存在使用會議成員資格提供存儲用戶信息
  • 在web.config中有<location>部分<allow users="*">。這用於靜態內容(例如圖像)

每當我嘗試訪問錯誤頁面或甚至靜態內容時,會話都會嘗試啓動(可能是因爲成員資格提供程序)。如果SQL Server關閉,則會引發異常。

當我訪問某些文件夾(即靜態內容)時,有什麼辦法可以防止會員提供商和/或會話嘗試初始化嗎?

+0

更新:我拿出所有成員資格提供程序部分,並且在嘗試訪問靜態內容時仍然會收到會話異常:System.Web.HttpException:無法連接到SQL Server會話數據庫。是否可以停止會話嘗試啓動靜態內容,只爲aspx/ashx /任何頁面這樣做? – 2010-09-17 14:27:47

+0

我刪除了下面的答案,因爲它似乎無法更改每個目錄的身份驗證模式。 – 2010-09-17 15:13:17

+0

@Matti - 這將是理想的。另外,我記得讀過靜態內容通過ASP.NET管道,這就是爲什麼每個目錄都可以完成認證的原因。但是,該網站表示它沒有:http://msdn.microsoft.com/en-us/library/ms178473.aspx。 IIS 7中有這種變化嗎? ASP.NET開發服務器是否通過管道發送了所有內容?爲什麼獲取靜態內容嘗試啓動ASP.NET會話;是不是管道的一部分? – 2010-09-17 15:20:02

回答

0

事實證明,我的大部分問題是因爲IIS6,IIS7之間的差異,以及開發服務器:

http://www.asp.net/hosting/tutorials/core-differences-between-iis-and-the-asp-net-development-server-cs

IIS 6,ASP.NET只運行對配置擴展在網站屬性>虛擬目錄>配置>映射>應用程序擴展下。例如,.aspx指向aspnet_isapi.dll。靜態內容默認情況下不會通過ASP.NET。

IIS 7,它與Handler Mappings類似,但是由於新的集成管道,在web.config中,您還可以通過靜態內容檢查身份驗證。請參閱上面的URL中的Performing Forms-Based Authentication and URL Authentication on Static Files with IIS 7

同樣基於上述網址,在ASP.NET開發服務器(根據卡西尼):

自帶到 ASP.NET開發服務器,無論 對ASP的每個請求.NET頁面,圖像或 JavaScript文件,由 ASP.NET運行時處理。