ASP.NET Core 发布 IIS 中遇到的问题,及数据库创建
最近用 ASP.NET Core 发布 API 时,碰到了一些问题,总结一下供有需要的朋友参考。
发布 ASP.NET Core 的过程可以直接参考下面的网址,写得也比较详细的了。
https://jingyan.baidu.com/article/4d58d54175e8e79dd4e9c096.html
发布后出现问题去看通过事件查看器查看应用程序日志是非常有用的,详细信息会告诉你大概是出现了什么问题,我在发布的过程中就出现了各种问题。
1. HTTP Error 502.5
出现这个问题时,首先查看应用程序日志,我一开始也没看日志就根据错误信息在网上搜索,搜索到的文章基本上都解决不了我的问题,所以你一定要知道自己的问题的起因再去找解决方法。我本地和服务器都出现这个问题,但是原因不一样。本地发布 IIS 后出现这个问题时由于 SQL Server 默认实例试用期满,虽然开发的时候可以通过开发者实例运行,但是发布到 IIS 却是不能使用开发者实例的。服务器出现这个报错则是数据库链接字符串错误引起。

服务器端出现 502.5 错误时,通过日志可以明确知道原因

2.“无法打开明确指定的数据库 XXX”
出现这个问题首先要先确定你的应用程序池里配置的用户是具有数据库访问权限的,可以参考链接 https://blog.csdn.net/zhuyu19911016520/article/details/78241825,文章写得不是很清楚,不过知道方法就可以了。
确定你配置的用户没有问题之后,那就要看看你服务器的数据库里是不是真的缺少程序所需要的数据库了, ASP.NET Core 的数据库生成方式跟以往的 MVC 模式的站点部署有点不同,使用 EF Code First 方式的 MVC 站点,在部署到 IIS 后,IIS可以自动执行数据库迁移,但是 ASP.NET Core 是需要你自己去发布 Migrator 项目,然后通过 dotnet xxx.Migrator.dll 命令来创建数据库的,具体参考下面步骤。

使用 Migrator 在服务器上创建或更新数据库
2.1 发布 Migrator 项目

2.2 将 Migrator 发布的文件夹拷贝到服务器
2.3 服务器上打开 dos 命令窗口,将执行路径指向到 Migrator 文件夹下

2.4 执行数据库迁移(migration),命令 dotnet xxx.Migrator.dll,出现下图的输出信息,则表示数据库更新成功


浙公网安备 33010602011771号