我正在为网站使用SQL Server LocalDB。如何通过IIS启动SQL Server LocalDB
安装SQL Server LocalDB并创建数据库。共享实例通过LocalDBCreateInstance,StartLocalDBInstance和LocalDBShareInstance创建。
如果实例启动,网站可以成功连接到数据库。
但是,如果实例停止,它不会自动启动。从控制台应用程序访问数据库(当实例停止时)会导致实例启动。
所以这似乎是某种权限问题。
应用程序池在AppPool标识下运行。但将其切换到网络服务或本地系统并不能解决问题。
应用程序池配置为加载其用户配置文件,并且“setProfileEnvironment”属性也设置为true。 (这两个设置都需要按照here和here的描述)。
我监视了Sysinternal进程监视器的数据库访问,但未能找到任何“拒绝访问”条目。
我也尝试从网站本身(在Global.asax)调用StartLocalDBInstance。调用成功返回(返回值是S_OK),但实例仍然停止。
何其不幸。 –
我启动了一个[CodePlex上的小工具](http://localdbcompanion.codeplex.com/)来简化与默认应用程序池共享和启动自动实例(称为“v11.0”)。它需要扩展以涵盖自定义实例名称和其他应用程序池。我只会建议在开发环境中使用它:-) –
奇怪。如果您可以在IIS中将“加载用户配置文件”设置为true,那么它应该可以工作。此外,我认为快递几乎不赞成LocalDB ... – dudeNumber4