无法生成SQL Server的用户实例

我正在使用Windows 7 Beta并尝试在本地安装Web应用程序。 该网站在网站的〜/ App_Data文件夹中使用Microsoft SQL Server 2005 Express (SQLEXPRESS)和MDB文件。 我被指示将IIS7configuration为使用这个Web应用程序的经典.NET AppPool

每次该网站加载时,我收到以下错误:

尝试连接到数据库服务器时出错:由于检索用户的本地应用程序数据path失败,无法生成SQL Server的用户实例。 请确保用户在计算机上具有本地用户configuration文件。 连接将被closures。

互联网上挤满了关于这个主题的文章。 stream行的看法似乎是:

  1. configurationSQL Express服务以使用本地系统帐户。
  2. 删除以下目录:C:\ Users \用户名\ AppData \ Microsoft \ Microsoft SQL Server数据\ SQLEXPRESS

这些修复都没有造成任何影响。 我已经修改了权限和设置几个小时,但没有用。 任何人都可以提出修复或帮助我了解如何获得有关该问题的更详细的信息。

在Windows 7下的IIS中,select应用程序池,然后select“高级设置”。 在“process model”下find“Load User Profile”并将其设置为true。

SQL现在应该加载默认的应用程序池帐户下。

我的工作站上有同样的问题,但从来没有在服务器上。

这是我在网上find的一个临时修复,它似乎工作:

在查询编辑器中键入: exec sp_configure'user instances enabled',然后1重新configuration

然后重新启动SQL Server数据库。

今天发现这个链接

并在StackOverflow上快速search后https://stackoverflow.com/questions/281500/error-failed-to-generate-a-user-instance-of-sql-server

布赖恩

为了这一切都有道理,首先看看任务pipe理器上所有用户的进程列表。

w3wp.exe是新的WWW工作进程。 它使用名为DefaultAppPool的用户的权限在安全沙箱中运行。

在过去,不是DefaultAppPool用户,而是IUSR和IWAM用户(请参阅IIS中的IUSR和IWAM帐户是什么? )。

当您使用SQL成员资格提供程序时,w3wp.exe进程将启动一个SQL Server用户实例并附加到连接string(通常为App_Data / ASPNETdb.mdf)中指定的数据库。 运行SQL Server的用户实例需要一个本地configuration文件,以便临时文件可以到达某个地方。

故障排除步骤

  1. 确保过程w3wp.exe由DefaultAppPool用户运行。
  2. 确保SQL Server启用了用户实例(请参阅config_value和run_value)
    exec sp_configure 'user instances enabled' 
  3. 如果不是执行
      sp_configure'启用用户实例',1 

    然后:重新configuration

  4. 重新启动SQL Server,以防ASPNETdb.mdf由不同的SQL Server用户实例连接。
  5. 确保本地用户configuration文件C:\ Users \ DefaultAppPool目录存在。 如果没有,打开LocalProfile = True,这将创build本地configuration文件。 这是在IISpipe理器,应用程序池,DefaultAppPool,高级设置…
  6. 如果您对数据库有进一步的问题,请使用SQLconfigurationpipe理器连接到用户实例,并查看数据库是否已连接。 您需要连接到正确的instance_pipe_name
     SELECT owning_principal_name, instance_pipe_name, heart_beat FROM sys.dm_os_child_instances
    SELECT owning_principal_name, instance_pipe_name, heart_beat FROM sys.dm_os_child_instances