我正在使用Windows 7 Beta并尝试在本地安装Web应用程序。 该网站在网站的〜/ App_Data文件夹中使用Microsoft SQL Server 2005 Express (SQLEXPRESS)和MDB文件。 我被指示将IIS7configuration为使用这个Web应用程序的经典.NET AppPool 。
每次该网站加载时,我收到以下错误:
尝试连接到数据库服务器时出错:由于检索用户的本地应用程序数据path失败,无法生成SQL Server的用户实例。 请确保用户在计算机上具有本地用户configuration文件。 连接将被closures。
互联网上挤满了关于这个主题的文章。 stream行的看法似乎是:
这些修复都没有造成任何影响。 我已经修改了权限和设置几个小时,但没有用。 任何人都可以提出修复或帮助我了解如何获得有关该问题的更详细的信息。
在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文件,以便临时文件可以到达某个地方。
故障排除步骤
exec sp_configure 'user instances enabled'
sp_configure'启用用户实例',1
然后:重新configuration
SELECT owning_principal_name, instance_pipe_name, heart_beat FROM sys.dm_os_child_instancesSELECT owning_principal_name, instance_pipe_name, heart_beat FROM sys.dm_os_child_instances