2010-09-16 45 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运行时处理。