无法生成SQL Server的用户实例


8

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

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

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

互联网上挤满了有关该主题的文章。普遍的智慧似乎是:

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

这些修复程序均未产生任何影响。我已经修改了权限和设置数小时,但无济于事。任何人都可以提出修复建议或帮助我了解如何获取有关该问题的更多详细信息。


IIS在哪个服务帐户下运行?您是否尝试过为其创建帐户?
布伦特·奥扎尔

Answers:


13

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

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



1

布赖恩

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

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

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

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

故障排除步骤:

  1. 确保进程w3wp.exe由DefaultAppPool用户运行。
  2. 确保SQL Server启用了用户实例(请参阅config_value和run_value)
    exec sp_configure 'user instances enabled'
  3. 如果不执行,
    sp_configure 'user instances enabled', 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
    
    
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.