如何解决无法登录-用户“用户名”登录失败
我正在将我的ASP.NET Framework应用程序迁移到ASP.NET Core
我在连接到生产数据库时遇到问题。
我的本地SQLite数据库工作正常。
当我尝试连接到远程SQLExpress数据库时出现问题。
错误消息是
用户“用户名”的登录失败
最明显的第一件事是用户名或密码错误,但是我正在从web.config文件中复制连接字符串并将其粘贴到appsettings.json文件中!
当我尝试使用.NET Framework版本连接到数据库时,它连接正常。
如果我通过SSMS连接并使用SQL Server Auth,则可以使用相同的复制和粘贴凭据登录。
我相信代码的相关部分是
public void Configure(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseLazyLoadingProxies();
var configuration = new ConfigurationBuilder().AddJsonFile("appsettings.json",true,true).Build();
var connectionString = configuration.GetConnectionString(GetConnectionString());
if (IsTestDatabase())
{
optionsBuilder.UseSqlite(connectionString);
}
else
{
optionsBuilder.UseSqlServer(connectionString); //I ASSUME THIS WORKS WITH SQL EXPRESS
}
}
和我的appsettings.json文件的相关部分是
"ConnectionStrings": {
"TestingDatabase": "Data Source=c:\\MyWebsite\\datastorage.db;","LiveDatabase": "Data Source=111.111.111.111\\sqlexpress;initial catalog=DatabaseName;persist security info=True;user id=username;password=password;multipleactiveresultsets=True;"
},
我能够创建数据库上下文的实例,但不能查询任何数据。
var dc = new DalCf.Entities();
var account = dc.Accounts.AsNoTracking().Single(); //this is the line that throws an exception
我分享的内容看起来像是做错了什么吗?
解决方法
由于您可以在SSMS中成功连接并且连接字符串有效,所以用于获取连接字符串的机制有问题:
configuration.GetConnectionString(GetConnectionString())
您在上一行使用的GetConnectionString()
方法似乎未返回正确的连接字符串。
查看GetConnectionString()
返回的内容(某些字符可能有问题,例如您的密码是否使用非字母数字字符)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。