如何防止SQL Server Express数据库文件自动创建错误?

时间:2012-01-10 22:38:14

标签: asp.net-mvc-2 sql-server-express

当我尝试在我的本地IIS 7上运行MVC 2应用程序时,我不断收到此错误:

  

由于失败而无法生成SQL Server的用户实例   检索用户的本地应用程序数据路径。请确认   用户在计算机上具有本地用户配置文件。连接会   关闭。

但是,我没有连接到SQL Server Express的任何东西,当我在localhost上运行时,我的所有连接字符串都正常工作。

出现这种错误的原因是什么?我该如何预防?

1 个答案:

答案 0 :(得分:0)

ASP.NET应用程序(包括MVC 2)默认情况下会创建一个SQL Server数据库来存储用户和角色。该数据库名为ASPNETDB,存储在App_Data文件夹中 - 如果尚未存在,ASP.NET将在应用程序启动时尝试创建它。

要创建/打开此数据库,请使用SQL Server Express的用户实例。要启动用户实例,必须为当前用户加载用户配置文件(在这种情况下,ASP.NET应用程序池运行的任何帐户)。但IIS应用程序池的默认配置是不加载用户配置文件以限制启动时间并节省内存。

要启用应用程序池的加载用户配置文件,请转到IIS管理器中的配置,并在“高级选项”中查找加载用户配置文件。将其设置为 true ,它应该可以正常工作。

如果您希望避免使用用户实例并加载用户配置文件,则可以为应用程序的用户和角色使用不同的数据库。只需再次访问IIS管理器,找到您的网站,并在ASP.NET配置中查找连接字符串部分。我打赌你会在那里看到一个名为 LocalSqlServer 的连接字符串。只需将其更新为指向您要使用的数据库即可。您可以看到this thread以了解如何创建新的ASPNETDB数据库。如果在主SQL Server实例上创建它,则不需要连接到配置文件 - 只需在SQL Server中创建登录并确保连接字符串正在使用它。