此处的 Microsoft 文档
http://msdn.microsoft.com/en-us/library/h6bb9cz9(v=vs.90).aspx
并且一些 SO 文章表明,在 ASP.NET web.config 文件的 sessionState 声明中指定allowCustomSqlDatabase="true"将允许我使用默认的 ASPState 数据库覆盖并指定我自己的数据库名称。
我在 web.config 文件中设置了这些属性。
<sessionState allowCustomSqlDatabase="true" mode="SQLServer" sqlConnectionString="Data Source=mysqlservername;Initial Catalog=DR_ASPState;Integrated Security=true;Connect Timeout=15;" />
当我尝试调出默认网站页面时,我收到一条错误消息,指出无法访问 ASPState 数据库。
我已经使用 SQL Profiler 监控了 SQL 流量,并注意到失败是由以下请求引起的:
SELECT @appId = AppId
FROM [ASPState].dbo.ASPStateTempApplications
WHERE AppName = @appName
我已回收应用程序池并重新启动 IIS 以尝试刷新可能存在的任何缓存数据库名称引用,但这无济于事。我的理解是 ASP.NET SessionState 将使用我指定的数据库名称DR_ASPState来生成用于连接到 SessionState 数据库的 SQL 语句。但它确实似乎[ASPState]被硬编码到框架中。
任何人都可以发现我做错了什么或提供有关如何解决此问题的有用故障排除信息吗?