About LocalDB

LocalDB是SQL Server 2012带来的新特性,它是一个专门为开发人员量身定制的轻量级数据库。
本文主要以ASP.Net on IIS7为例,讨论通过IIS7部署使用LocalDB的托管代码的一些注意事项。关于LocalDB,可以参考TechNetMSDN

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用户身份登录很简单:

配置应用程序池以特定Windows用户身份登录

选择“自定义用户”,输入有效的用户名和密码。注意,一旦密码更改,就需要重新设置。

参考:Using LocalDB with Full IIS, Part 2: Instance Ownership

使用共享实例,只需要设置指定的LocalDB实例为共享的即可。详见TechNet上的说明。