ASP.NET网站管理工具:无法连接到SQL Server数据库

时间:2010-07-19 00:59:11

标签: asp.net sql-server asp.net-mvc security

我正在尝试使用我的ASP MVC项目进行身份验证和授权。我没有任何问题地运行aspnet_regsql.exe工具,并在我的服务器上查看aspnetdb数据库(使用Management Studio工具)。

我的web.config中的连接字符串是:

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

我得到的错误是:

  

您选择的数据存储存在问题。这可能是由无效的服务器名称或凭据或权限不足引起的。它也可能是由未启用角色管理器功能引起的。单击下面的按钮可重定向到可以选择新数据存储的页面。

     

以下消息可能有助于诊断问题:无法连接到SQL Server数据库。

过去,I have had trouble connecting to my database因为我需要添加用户。我必须在这做类似的事情吗?

修改 更改连接字符串最终解决了问题。 对于我使用VS2010,ASP MVC2,SServer 2008

的记录
<connectionStrings>
<add name="ApplicationServices"
     connectionString="data source=MYSERVERNAME;Integrated Security=True;Initial Catalog=aspnetdb"
     providerName="System.Data.SqlClient" />
</connectionStrings>

2 个答案:

答案 0 :(得分:1)

您正在使用服务器名称“MYSERVER”,就好像这是一个完整的SQl Server Default实例,而不是Sql Express。我认为您不能将AttachDbFilename与完整的SQL Server一起使用。将“\ SQLEXPRESS”(实例名称)添加到您的服务器名称或删除AttachDbFileName并使用Database =“NAMEOFDATABASE”

答案 1 :(得分:0)

根据我的经验,可能使用略有不同的情况,ASPNET服务帐户(Machine_X \ ASPNET或网络服务)要求授予源数据库的权限,如果它还没有它:

-- Grant ASPNET access to the database
USE [##DBNAME##]
GO 

-- Grant login to Network service for ASPNET membership
EXEC sp_grantlogin N'##SERVICEACCOUNT##'
go

-- Grant minimum permissions
USE [##DBNAME##]
GO 
sp_addrolemember 'aspnet_Membership_FullAccess', N'##SERVICEACCOUNT##'
GO