电脑里面安装了Portal for ArcGIS产品的用户一定知道,Portal是不支持安装好了之后再去修改机器名域名的,一旦改了,那么Portal只能重装。所以在安装之前,我们都再三被告知,一定得确定好机器名域名。但是,万一电脑不知道什么原因,被修改了机器名域名,这种“天灾”,那可真是要我们叫苦不迭啊。
小编我就不幸中招了一次,本来我的机器名域名是 aj.enterprise.cn,那么访问Portal的地址就是https://aj.enterprise.cn/portalwa/home,(为了区分,我在安装的时候给portal的webadaptor起名为portalwa,server的webadaptor起名为serverwa),访问server的地址就是https://aj.enterprise.cn/serverwa/manager,某一天,我无意中看到了server里的日志,里面的报错信息写着类似于“访问连接aj.mshome.net失败的字样”,刚好验证关系库是失败的,但是由于当时手头还有别的事情,就暂时没把自己电脑环境这个事情放在心上,隔天再去验证关系库,神奇般的好了,也没有细究,当时的情况就是,虽然在日志中发现了异常,但是因为没有特别影响到我使用,就没当回事。
后面就开始了我的“惨痛”教训,果然,出来混,早晚都要还的。
就是因为当时注意到那个异常,后来Enterprise升级的时候,这个问题就暴露了出来。当运行完安装程序之后,软件会自动访问Portal的页面进行后续操作,但是我的Portal地址就变成了https://aj.mshome.net:7443/arcgis/home 看着这个地址的我有点儿懵,再三输入之前的域名,总是会跳转到错的那个名字,但是我在我的电脑上面右键--属性,那里的机器名还赫然写着aj.enterprise.cn,我彻底懵了。当时正值半夜,脑袋不清楚,不敢妄动,关了电脑就睡了。
隔天到公司,访问Portal,居然还是跳转到错误的地址,看来重启大法不好用了,得想别的招了,经过多日的摸索与总结,现将解决之法分享如下:(真正的干货开始了)
症状1:域名为aj.enterprise.cn,访问时域名跳转到aj.mshome.net,没有DNS服务器,我的电脑中的属性还是aj.enterprise.cn
对症下药1:去C:\Windows\System32\drivers\etc下,检查一下hosts文件,正确的写法应该是127.0.0.1 aj.enterprise.cn,然后保存,关闭
原因1:127.0.0.1 代表系统给自己留的IP,不管网络IP是多少,怎么变,127.0.0.1是永远不会变的,所以那一句话可以保证映射到正确的IP和域名
症状2:改了上述hosts文件之后,访问portal,依旧跳转错误的地址
对症下药2:依旧去C:\Windows\System32\drivers\etc,这次修改的是hosts.ics文件,将这里面的错误域名替换成正确的地址,然后保存、关闭,最重要的一步来了,在这个文件上右键--属性,更改为只读模式。
原因2:这一步非常重要,因为这个文件的特殊性,已经是管理员权限并且不能取消管理员权限,如果不勾选为只读,那么系统就会对这个文件进行操作,每次开机,该文件就会自动变为之前错误的信息。
以上两步修改好之后,至少Portal能访问正确的地址了,然后我按照帮助文档,依次升级了webadaptor和server。新的问题又出现了。
症状3:在Portal中验证server,显示红色的叹号,而且server的manager页面也进不去,提示未授权。
把鼠标放在红色叹号那里,会出现提示信息,其中就有连接aj.mshome.net:7443失败的字样
对症下药3:停止server的系统服务,打开server的配置目录..\server\config-store\security,编辑security-config.json文件,在这里我们会看到有aj.mshome.net:7443的字样
将其改为正确的域名即可,保存该文件后,重启server系统服务。
稍等片刻,再次验证server,即可成功,同时会发现,server的manager页面也能正常进入,不会提示未授权了。
此时我还未升级DataStore,为了保证后面升级与使用的顺利,我还做了以下更改
巩固治疗1:打开DataStore的配置目录,如..\datastore\pgdata,编辑pg_hba.conf文件
将错误的名称改回来,保存即可。
巩固治疗2:用PgAdmin4,连接到Portal内置的数据库,打开到下图所示的表(PS:为了保证安全,强烈建议进行此操作前对数据库进行备份)
将所有的https://mshome.net删掉即可,一共33条。
上述步骤都完成后,升级DataStore。畅通无阻,升级成功!