我在将ASP.NET Core 3.1应用程序部署到IIS时遇到问题。
当我在appsettings.json
文件中提供Windows凭据时,总是出现以下错误:
使用域\用户名$登录失败
我应该更新web.config
中的连接字符串还是更新IIS管理器中的IIS服务器?appsettings.json
:
{
"AppSettings": {
"Secret": "9HGXuFLr5PeSjhBBgvMM8CYCQkCcfFgWgQFQvX9M6ahsHC87ESH3cVajpnfTHEBJ"
},
"Logging": {
"LogLevel": {
"Default": "Debug",
"System": "Information",
"Microsoft": "Information"
}
},
"AllowedHosts": "*",
"ConnectionStrings": {
"L4LAuthentification_TEST01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4LAuthentification_TEST01;Integrated Security=True;",
"L4Authentification_RECET01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4Authentification_RECET01;Integrated Security=True;",
"DevInfoCDataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=DevInfoC;Integrated Security=True;",
"InfocentreRecet01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=InfocentreRecet01;Integrated Security=True;",
"L4LGestionFLux_TEST01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4LGestionFLux_TEST01;Integrated Security=True;",
"L4GestionFlux_RECET01DataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4GestionFlux_RECET01;Integrated Security=True;",
"L4EdiFluxInDataBase": "Server=SRVSQL-01-TST\\INSTANCE1;Database=L4EdiFluxIn;Integrated Security=True;",
}
}
1条答案
按热度按时间smdnsysy1#
无论何时使用“Integrated Security=True”,您都需要知道您的代码正在运行哪个标识(也称为主体)。并且该IIidentity(在IIS中运行您的进程)必须具有SqlServer的凭据。-
最有可能的情况是,您的IIS以“DOMAIN\USERNAME$"的身份运行您的应用程序。并且(相应地)帐户DOMAIN\USERNAME$没有访问您的ms-sql-server的凭据。
您很可能会创建一个更加独立的“服务帐户”,用于运行IIS应用程序,并且该帐户对Ms-Sql-Server具有权限。