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

问题描述

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

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

在在线搜索中,我正在努力寻找一个简单而直接的演练,以介绍如何通过数据库连接发布Web-API。我怀疑问题出在发布配置文件连接的服务部分。我不得不解决一些与缺少软件包有关的构建错误,并且该项目:

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

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

非常感谢您的帮助。

解决方法

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

enter image description here

确保已安装.NET Core主机捆绑包和.NET Core运行时。

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

  • 打开iis管理器,选择您的应用程序池。

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

enter image description here

  • 在“流程模型”下,单击“身份”值,然后选择“自定义帐户”。

enter image description here

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

  • 应用更改后,选择应用程序池,然后单击“回收”。

  • 重新启动您的网站。

请参考以下链接以获取更多详细信息:

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