有很多关于此错误的帖子,但我无法用那里的答案解决我的问题。
我已经创建了一个通过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")
{
....
}
我尝试删除构造函数中的字符串或更改它但仍然不起作用。
答案 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页面了解详情。