LocalDB with IIS
About LocalDB
LocalDB是SQL Server 2012带来的新特性,它是一个专门为开发人员量身定制的轻量级数据库。
本文主要以ASP.Net on IIS7为例,讨论通过IIS7部署使用LocalDB的托管代码的一些注意事项。关于LocalDB,可以参考TechNet和MSDN。
P.S.LocalDB的最低支持是在.Net Framework 4.0.2。想要在更早的NetFx上使用LocalDB,可以使用命名管道来连接,详见TechNet上的说明。
Key points (with IIS7)
1. User Profile
在IIS中使用LocalDB需要在应用程序池中加载用户配置文件。
在应用程序池的设置中配置这一选项。默认值是“False”。
参考:Using LocalDB with Full IIS, Part 1: User Profile
2. Authorization
默认情况下,LocalDB的实例为特定用户私有。使用该实例需要以所有者身份登录。
IIS7应用程序池的默认账户是内置用户ApplicationPoolIdentity,托管代码试图通过这个用户访问LocalDB会引发登录失败异常。
解决方法有两个:
- 使用LocalDB的共享示例;
- 配置应用程序池以特定Windows用户身份登录。
配置应用程序池以特定Windows用户身份登录很简单:
选择“自定义用户”,输入有效的用户名和密码。注意,一旦密码更改,就需要重新设置。
参考:Using LocalDB with Full IIS, Part 2: Instance Ownership
使用共享实例,只需要设置指定的LocalDB实例为共享的即可。详见TechNet上的说明。