2012-01-10 33 views
1

当我尝试在我的本地IIS 7运行MVC 2应用程序,我不断收到此错误:如何防止SQL Server Express数据库文件自动创建错误?

Failed to generate a user instance of SQL Server due to failure in retrieving the user's local application data path. Please make sure the user has a local user profile on the computer. The connection will be closed.

不过,我没有连接到SQL Server Express的东西,和我所有的连接字符串工作很好,当我在我的本地主机上运行。

这种错误的原因是什么?我怎样才能防止它?

+0

你可以向我们展示**你的连接字符串之一吗? – 2012-01-11 06:09:11

回答

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中创建一个登录名并确保您的连接字符串正在使用它。

相关问题