You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6 Web API部署IIS后无法访问数据库数据求助

问题:.NET 6 Web API部署IIS后无法访问MySQL数据库数据

我用.NET 6开发了基于MySQL的Web API,通过Entity Framework实现数据存储。将该解决方案部署到IIS后,可访问存储在普通数组中的本地数据,默认WeatherForecast接口也能正常访问,但无法访问存储在数据库中的数据,访问对应接口时出现错误。

现有Appsettings.Json配置

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "ContactsApiConnectionString": "Server=STL-TECH-IT;Encrypt=False;Database=ContactsDb;User Id = sa; Persist Security Info=true; Password=password;Trusted_Connection= true ; MultipleActiveResultSets=true; "
  }
}

排查与解决建议

  • 修复连接字符串冲突:连接字符串同时配置了User Id=sa(SQL Server账号认证)和Trusted_Connection=true(Windows身份认证),二者不可同时生效。二选一调整:
    • 若使用SQL Server账号:删除Trusted_Connection= true部分
    • 若使用Windows身份认证:删除User Id = sa; Persist Security Info=true; Password=password;部分
  • 检查IIS应用池权限:IIS应用池默认账户(如IIS AppPool\你的应用池名称)可能无MySQL数据库访问权限。可采取两种方式:
    • 给该内置账户分配数据库的读写权限
    • 将应用池身份切换为具备数据库访问权限的域账户或本地账户
  • 确保MySQL驱动正常部署:确认服务器上已安装MySqlConnector组件,或在项目中设置该NuGet包的「复制本地」属性为True,确保部署时驱动文件被复制到服务器
  • 排查网络与防火墙:检查IIS服务器防火墙是否允许访问MySQL服务器的3306端口,同时验证STL-TECH-IT服务器名能在IIS服务器上正常解析到对应IP
  • 执行数据库迁移:部署后需在服务器上运行dotnet ef database update命令,确保数据库结构与代码中的Entity Framework模型一致
  • 开启详细日志定位问题:修改appsettings.json的Logging配置,添加"Microsoft.EntityFrameworkCore": "Debug",然后查看IIS日志文件(默认路径C:\inetpub\logs\LogFiles)获取具体错误信息

内容的提问来源于stack exchange,提问作者Toyabur Rahman Utshow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 17:38:26