2011-12-20 67 views
2

正如我一直跟着一个MusicStore教程,新的MVC3项目创造了我下面的连接字符串:MVC3连接字符串

<add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 

我的模型表得到了在创建\ SQLEXPRESS和所有的用户/角色表存储在App_Data文件夹中的aspnetdb.mdf中。 我想在我的模型表和用户/角色表。 \ SQLSERVER或本地主机而不是分散在。\ SQLEXPRESS和mdf文件之间。我正在努力处理正确的连接字符串。任何人都可以提出正确的建议吗?

大家谁做过这一步,以确保连接字符串的名称应该是从* 的DbContext *

+0

你可以尝试:; Integrated Security = SSPI; App = EntityFramework”providerName =“System.Data.SqlClient”/> – Akhil 2011-12-20 01:04:58

+0

@Akhil,但我用什么做inital目录?数据库还没有,它需要由EF在第一次运行应用程序时创建。我试过了:并得到以下异常通过asp.net:无法打开登录请求的数据库“Learn1”。登录失败。 用户'msi-PC \ msi'登录失败。 – mishap 2011-12-20 01:16:37

+0

在这种情况下,您不需要InitialCatalog和App = EntityFramework件。它们是否能够排除两者? – Akhil 2011-12-20 01:18:08

回答

1

派生上下文类的听起来名字像你需要在aspnet_regsql运行ApplicationServices数据库。您可以在C:\ Windows \ Microsoft.Net \ Framework \ 4.xxx \ aspnet_regsql.exe中找到它。

默认项目使用ApplicationServices数据库作为成员资格,角色和配置文件的默认值。 sproc dbo.aspnet_CheckSchemaVersion是ASP.NET SQL成员资格提供程序架构中的一个存储过程。

回应置评#1

你有你的机器名为SQLSERVER上运行的数据库实例?您提到的异常是常见的,如果asp.net无法使用连接字符串查找数据库。

回应置评#2

这是有道理的。集成安全性= true告诉连接使用运行MVC应用程序(通常是IIS应用程序池)的进程进行sql server登录。如果您正在从Visual Studio/Web Developer Express/etc进行测试,那么Web服务器很可能正在使用您的Windows帐户运行一个进程。所以,如果你可以对数据库服务器进行Windows认证,MVC也应该能够。

User Instances are meant for SQLEXPRESS

+0

我在sqlexpress上运行了aspnet_regsql,并创建了会员表。现在,我试图简单地将。\ SQLEXPRESS更改为。\ SQLSERVER,如果我断开SQLEXPRESS,则会出现以下错误:建立与SQL Server的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接。 (提供程序:共享内存提供程序,错误:40 - 无法打开到SQL Server的连接)。 – mishap 2011-12-20 04:01:31

+0

我可以使用Windows身份验证从Management Studio连接到。\ SQLSERVER,甚至在那里创建了一个具有相同名称的数据库。但是,此连接字符串不起作用:,而对于。\ SQLEXPRESS工作正常: mishap 2011-12-20 22:30:46