无法使用 .NET Core 3.1 文件系统连接到数据库发布到 IIS

Unable to connect to database with .NET Core 3.1 File System Publish to IIS

问题:使用文件系统方法发布ASP.NET Core 3.1 Web-Api时如何正确设置数据库连接到 Windows 10 上的 IIS 运行?我相信我已经为 IIS 添加了所有正确的 Windows 功能,因为它运行并且我是 运行 VS 2019 社区管理员模式。

这是我第一次通过 Publish 方法将 .NET Core 3.1 Web-API 部署到 IIS。我能够成功地将 Web 应用程序发布到 IIS。但是数据库配置似乎有问题,因为当我尝试通过 Postman 提交登录 POST 时,我从 API 错误处理中间件收到一条错误消息,指出凭据无效,这实际上表示Web-API无法连接到数据库。作为测试,当我在 IIS Express 调试中尝试 运行 并更改连接字符串时,我得到了同样的错误。注意:IIS 服务器日志不包含任何相关输出来确认这一点,但我很确定这就是问题所在。

在网上搜索时,我正在努力寻找关于如何发布具有数据库连接的 Web-API 的简单直接的演练。我怀疑问题出在发布配置文件的 Connected Services 部分。我不得不克服一些与丢失包相关的构建错误,以及这个项目:

https://obscureproblemsandgotchas.com/development/c/dotnet-core-ef-migration-not-working/

应用此更改后,可以从发布配置文件的 发布设置 部分读取数据库数据上下文字符串,该部分从 appsettings.json 文件。不过,我必须修改该字符串以从实际 json 值中删除转义符 '',以便测试连接成功。

非常感谢任何帮助。

您可以在 visual studio 部署时设置连接字符串,如下所示:

确保安装了 .NET Core Hosting Bundle 和 .NET Core Runtime。

完成所有这些操作后,将应用程序池身份设置为管理员:

  • 打开 iis 管理器,select 你的应用程序池。

  • 单击操作窗格中的高级设置。

  • 在流程模型下,单击“身份”值和select“自定义帐户”。

  • 输入用户必须访问数据库的域用户名和密码,然后单击“确定”应用更改。

  • 应用更改后 select 应用程序池并单击“回收”。

  • 重新启动您的站点。

详情请参考下方link:

https://forums.iis.net/post/2159167.aspx