题 无法生成SQL Server的用户实例


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

每次加载网站时,都会收到以下错误:

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

互联网上堆满了关于这个主题的文章。流行的智慧似乎是:

  1. 配置SQL Express服务以使用 本地系统 帐户。
  2. 删除以下目录:C:\ Users \ username \ AppData \ Microsoft \ Microsoft SQL Server Data \ SQLEXPRESS

这些修复都没有产生任何影响。我已经修改了几个小时的权限和设置无济于事。任何人都可以建议修复或帮助我了解如何获得有关该问题的更详细信息。


8
2018-04-30 23:27




IIS运行的服务帐户是什么?您是否尝试为其创建帐户? - Brent Ozar


答案:


在Windows 7下的IIS中,选择应用程序池,然后选择“高级设置”。在“流程模型”下找到“加载用户配置文件”并将其设置为true。

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


13
2018-06-01 20:48



这对我有用,谢谢!! - Breadtruck


我的工作站上遇到了同样的问题但从未在服务器上出现过问题。

这是我在网上发现的一段临时修复,它似乎有效:

在查询编辑器中输入: exec sp_configure'用户实例已启用',1 然后: 重新配置

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

发现了这个 链接 今天

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


1
2018-05-02 19:52





布赖恩

为此,首先要查看任务管理器上所有用户的进程列表。

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

在过去,它不是DefaultAppPool用户,而是IUSR和IWAM用户(参见 IIS中的IUSR和IWAM帐户有哪些? )。

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

故障排除步骤

  1. 确保DefaultAppPool用户运行w3wp.exe进程。
  2. 确保SQL Server启用了用户实例(请参阅 CONFIG_VALUE 和run_value)
    exec sp_configure 'user instances enabled'
  3. 如果不是exec
    sp_configure'用户实例已启用',1
     然后:重新配置
  4. 重新启动SQL Server,以防ASPNETdb.mdf由SQL Server的其他用户实例附加。
  5. 确保存在本地用户配置文件C:\ Users \ DefaultAppPool目录。如果没有,请打开LocalProfile = True,这将创建本地配置文件。这是在IIS管理器,应用程序池,DefaultAppPool,高级设置中完成的...
  6. 如果您还有数据库问题,请使用SQL配置管理器连接到用户实例,并查看是否已附加数据库。你需要连接到正确的 instance_pipe_name
    SELECT 
    owning_principal_name, instance_pipe_name, heart_beat
    FROM
    sys.dm_os_child_instances
    
    

1
2018-01-19 03:50