连接字符串中指定的用户名在运行时被替换
Specified username in connection string gets replaced at runtime
我有一个网站项目作为入口点并在那里定义了连接字符串:
"ConnectionStrings": {
"DataPlaygroundConnection": "Server=DataPlayhouse;Database=BusinessHandshake;User ID=bhuser1;Password=bh@12345;MultipleActiveResultSets=True;Connect Timeout=360;App=Company - Portal - Staging"
}
我最近才开始遇到 运行 时出现 Login failed for user 'bhuser1'
错误的问题。但是凭据正在工作,因为我可以使用任何数据库管理器 (SSMS) 连接到数据库。然后我添加了 Serilog 以了解从 Program.cs
抛出异常时发生了什么
添加Serilog后,发现异常块:
10/20/2020 07:54:49 +04:00 Application Starting.
10/20/2020 07:54:49 +04:00 Using an in-memory repository. Keys will not be persisted to storage.
10/20/2020 07:54:49 +04:00 Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
10/20/2020 07:54:49 +04:00 No XML encryptor configured. Key {a012bed6-42e0-475d-a11d-44ae3a5599a9} may be persisted to storage in unencrypted form.
10/20/2020 07:54:58 +04:00 An error occurred using the connection to database '"BusinessHandshake"' on server '"DataPlayhouse"'.
10/20/2020 07:54:58 +04:00 An exception occurred while iterating over the results of a query for context type '"Folio.Infrastructure.Data.Contexts.PlaygroundBiContext"'."
""Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'bhuser1'.
json 文件中的凭据是正确的,我可以在 Azure Studio 中使用相同的凭据连接到数据库。
我在上下文中没有任何自定义代码:
public partial class PlayHouseContext : DbContext
{
public PlayHouseContext()
{
}
public PlayHouseContext(DbContextOptions<PlayHouseContext> options)
: base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer("");
}
}
}
我在我的本地开发机器上有类似的错误:SqlException: Login failed for user 'bhuser1'.
在我的开发机器上,凭据是正确的,我可以使用 SSMS 轻松访问所述数据库和其中的所有元素。
这个我看不懂。
谢谢@DaleK。
Trusted_Connection表示windows认证。我不得不删除 并在 appsettings.Development.json 中也做同样的事情 。
我有一个网站项目作为入口点并在那里定义了连接字符串:
"ConnectionStrings": {
"DataPlaygroundConnection": "Server=DataPlayhouse;Database=BusinessHandshake;User ID=bhuser1;Password=bh@12345;MultipleActiveResultSets=True;Connect Timeout=360;App=Company - Portal - Staging"
}
我最近才开始遇到 运行 时出现 Login failed for user 'bhuser1'
错误的问题。但是凭据正在工作,因为我可以使用任何数据库管理器 (SSMS) 连接到数据库。然后我添加了 Serilog 以了解从 Program.cs
添加Serilog后,发现异常块:
10/20/2020 07:54:49 +04:00 Application Starting.
10/20/2020 07:54:49 +04:00 Using an in-memory repository. Keys will not be persisted to storage.
10/20/2020 07:54:49 +04:00 Neither user profile nor HKLM registry available. Using an ephemeral key repository. Protected data will be unavailable when application exits.
10/20/2020 07:54:49 +04:00 No XML encryptor configured. Key {a012bed6-42e0-475d-a11d-44ae3a5599a9} may be persisted to storage in unencrypted form.
10/20/2020 07:54:58 +04:00 An error occurred using the connection to database '"BusinessHandshake"' on server '"DataPlayhouse"'.
10/20/2020 07:54:58 +04:00 An exception occurred while iterating over the results of a query for context type '"Folio.Infrastructure.Data.Contexts.PlaygroundBiContext"'."
""Microsoft.Data.SqlClient.SqlException (0x80131904): Login failed for user 'bhuser1'.
json 文件中的凭据是正确的,我可以在 Azure Studio 中使用相同的凭据连接到数据库。
我在上下文中没有任何自定义代码:
public partial class PlayHouseContext : DbContext
{
public PlayHouseContext()
{
}
public PlayHouseContext(DbContextOptions<PlayHouseContext> options)
: base(options)
{
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
optionsBuilder.UseSqlServer("");
}
}
}
我在我的本地开发机器上有类似的错误:SqlException: Login failed for user 'bhuser1'.
在我的开发机器上,凭据是正确的,我可以使用 SSMS 轻松访问所述数据库和其中的所有元素。
这个我看不懂。
谢谢@DaleK。
Trusted_Connection表示windows认证。我不得不删除 并在 appsettings.Development.json 中也做同样的事情 。