C#EF - 无法打开登录请求的数据库'DB NAME'。登录失败,用户

时间:2018-04-01 20:46:27

标签: c# database

有很多关于此错误的帖子,但我无法用那里的答案解决我的问题。

我已经创建了一个通过Entity Framework与SQL Server一起运行的应用程序。该应用程序在我的电脑上运行没有问题,但当我发送给某人时,他收到此错误

  

无法打开登录请求的数据库'StorageDb'。登录失败,用户'DESKTOP -....../ User'

登录失败

我已经读过它与我的连接字符串有关但我试图改变它仍然不起作用。这是(在我的app.config文件中):

<add name="Storage.Properties.Settings.StorageDbConnectionString"
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=StorageDb;Integrated Security=True"
     providerName="System.Data.SqlClient" />

我的DbContext文件:

public StorageDbContext() : base("StorageDb")
{
   ....
}

我尝试删除构造函数中的字符串或更改它但仍然不起作用。

1 个答案:

答案 0 :(得分:1)

当您的连接字符串中有Integrated Security=True时,应用程序将使用Windows身份(登录用户的身份)连接到数据库。

<add name="Storage.Properties.Settings.StorageDbConnectionString"
  connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=StorageDb;Integrated Security=True"  providerName="System.Data.SqlClient" />

因此,要解决此问题,您可以按照此post中的说明向登录用户的帐户授予权限。或更新您的连接字符串以使用sql server身份验证模式。 e.g

<add name="MyDbConn" 
        connectionString="Server=MyServer; Database=pubs; User Id=MyUser; password= P@ssw0rd"
        providerName="System.Data.SqlClient" />

请参阅此page或其他msdn页面了解详情。

相关问题