如何通过IIS启动的SQL Server的LocalDB(How to start an SQL S

2019-07-04 17:34发布

我使用SQL Server的LocalDB一个网站。

SQL服务器的LocalDB安装和设置过程中创建一个数据库。 共享实例通过创建LocalDBCreateInstance , StartLocalDBInstance和LocalDBShareInstance 。

如果启动实例时,该网站可以成功连接到数据库。

但是,如果实例停止,它不会自动启动。 访问从控制台应用程序的数据库(例如,当停止)导致实例启动。

因此,这似乎是某种许可问题。

应用程序池下的应用程序池的身份运行。 它切换到网络服务或本地系统不能解决的问题,虽然。

应用程序池配置为加载其用户配置文件和“setProfileEnvironment”属性也被设置为true。 (如所描述的,需要两个设置在这里和在这里 )。

我监测与Sysinternal进程监视器对数据库的访问,但未能找到任何“拒绝访问”的条目。

我也试着拨打StartLocalDBInstance从网站本身(在Global.asax)。 该调用成功返回(返回值是S_OK),但实例仍停止。

Answer 1:

这是IIS下使用的LocalDB的缺点 - 例如通过交互式登录拥有,实例进程只能通过这个登录时启动。 由于IIS运行一些服务帐户就无法启动属于交互式登录帐户LocalDB实例。

你可以使用IIS服务帐户拥有的LocalDB实例,但要注意,你可能会遇到用户配置文件的问题 - 的LocalDB需要创建和加载的用户配置文件,而IIS使用,有时可能没有完全创建并加载轻量级用户配置文件。

查看在完整的IIS运行的LocalDB进行更详细的讨论,这两个博客文章。 我只会推荐它的开发环境,并使用基于SQL的服务快速进行生产。

  1. 第1部分:用户配置文件
  2. 第2部分:实例所有权


文章来源: How to start an SQL Server LocalDB via IIS