我正在尝试使用我的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>
答案 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