C# .Net Core 2.1 Web Api连接字符串,使用为SQL连接提供的用户Id和密码

C# .Net Core 2.1 Web Api连接字符串,使用为SQL连接提供的用户Id和密码,c#,database-connection,asp.net-core-webapi,sql-server-express,C#,Database Connection,Asp.net Core Webapi,Sql Server Express,我一直试图让我的应用程序使用提供的用户id和密码连接到我的SQL Server,但无法使任何东西正常工作 这里是设置,我有一台笔记本电脑,我正在开发和桌面上,我托管的webapi以及sql服务器。当我在连接到桌面sql server的笔记本电脑上本地运行时,一切正常(使用用户Id和密码)。但是,当我发布到桌面并尝试连接时,连接到sql server时会出现错误 我已经尝试了可信连接和集成安全的所有设置,但没有提供任何设置 任何将Trusted_Connection设置为false的操作都会在Wi

我一直试图让我的应用程序使用提供的用户id和密码连接到我的SQL Server,但无法使任何东西正常工作

这里是设置,我有一台笔记本电脑,我正在开发和桌面上,我托管的webapi以及sql服务器。当我在连接到桌面sql server的笔记本电脑上本地运行时,一切正常(使用用户Id和密码)。但是,当我发布到桌面并尝试连接时,连接到sql server时会出现错误

我已经尝试了可信连接和集成安全的所有设置,但没有提供任何设置

任何将Trusted_Connection设置为false的操作都会在Windows事件日志中显示这些错误

  • “Windows API调用SHGetKnownFolderPath返回错误代码:5。Windows系统错误消息为:访问被拒绝。”
  • 无法获取本地应用程序数据路径。很可能没有加载用户配置文件。如果在IIS下执行LocalDB,请确保为当前用户启用了配置文件加载
将Trusted_Connection设置为true的任何内容都会尝试使用IIS APPPOOL\…标识连接到SQL Server

"DefaultConnection": "Server=xxx\\SQLEXPRESS;Database=databaseName;User Id=userId;Password=password;Trusted_Connection=False;Integrated Security=False;"

这与用户和密码无关。如果应用程序与服务器位于同一台计算机上,则应该能够使用
\SQLEXPRESS
将本地计算机指定为服务器。旁注:如果您可以使用集成安全性(可信连接),它会更安全,只需以执行所需数据库操作所需的最低权限在用户帐户下运行应用程序池即可。因此,我添加了可信连接,为我的IIS APPPOOL\TestAppPool授予了数据库的登录名以及对我的数据库的读/写权限(与我传递的已用凭据具有的权限相同,并且可以在本地使用该站点)。我尝试将连接更改为。\SQLEXPRESS。我无法让它成功登录,现在我让用户IIS APPPOOL\TestAppPool登录失败。因此,它正在尝试该用户,但SQL server似乎不允许该用户登录,尽管他们具有服务器登录安全性和数据库用户安全性。“…数据库登录…”没有意义,因为登录是针对服务器的。用户可以在数据库级别访问。并且无法为AppPool标识提供密码,因此您需要一个常规Windows帐户来运行应用程序池。