赞
踩
由于更换服务器,需要将原服务器上的应用迁移至新服务器。旧服务器应用环境为.NET4.0+PostgreSQL9.6,新服务器应用环境为.NET4.0+PostgreSQL16.2。
在旧服务器中,使用 pg_dump 命令进行备份。
pg_dump -U username -W -F c -f backup_file.pgdump database_name
这一部顺利,将备份的文件复制到新的服务器。
在新的服务器上,创建新数据库。然后使用以下语句还原。
pg_restore -U username -W -d new_database_name backup_file.pgdump
提示 public scheme 已经存在。
解决:在新数据库中先删除 public scheme 后再运行就可以了。
一步步照抄旧服务器配置。
测试运行并不太顺利,耗时不少。
ASP.Net State Service,.NET 的状态服务无法连接。解决:默认是手动启动的,改成自动启动。启动后问题解决。
首页404错误。
解决**:在 IIS 安装选项中,应用程序开发项下边的 ASP.NET 需要勾选。
报错:Only AuthenticationClearTextPassword and AuthenticationMD5Password supported for now.
解决**:
原来新版本的 PostgreSQL 默认连接已经不允许明文了,默认指定了 scram-sha-256 加密算法,而这个应用项目使用的 Npgsql.dll 版本较低不支持所以无法正确连接。
解决办法两条思路,其一换 Npgsql.dll 版本,6.0 及以上是可以支持的,但似乎就不能支持 .NET4.0了。其二则是看是否可配置 PostgreSQL 来兼容旧的方式。其二当然是代价最小的。
修改位于 PostgreSQL\16\data 下的 pg_hba.conf 文件中的连接方法将 scram-sha-256 修改为 trust 即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。