代码之家  ›  专栏  ›  技术社区  ›  MedicineMan

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

  •  3
  • MedicineMan  · 技术社区  · 14 年前

    我正在尝试使用我的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 回复  |  直到 7 年前
        1
  •  1
  •   matt-dot-net    14 年前

    您使用的是服务器名“myserver”,就好像这是一个完整的SQL Server默认实例,而不是SQL Express。我认为您不能将AttachDBFileName与完整的SQL服务器一起使用。将“\sqlExpress”(实例名)添加到服务器名称中,或者去掉attachDBFileName并使用database=“name数据库”

        2
  •  0
  •   Tanner    14 年前

    根据我的经验,可能使用了一个稍微不同的场景,aspnet服务帐户(machine_x\aspnet或network service)要求授予对源数据库的访问权限,如果源数据库还没有这样的权限:

    -- 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