废话
最近在部署问题上踩了大坑,记录一下
公司的一个小项目,IdentityServer4+API+Blazor,做了几天时间,终于到部署阶段
中间部署过程省略一万字…
记录各种问题:
【ids4】IdentityServer4报错,well-known/openid-configuration: HTTPS required
【IIS】.NetCore项目 Blazor 部署到IIS服务器的一些注意项,好多模块需要下载安装
【Windows】无法启动此程序,因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll
【ids4】三天解决一个Bug,心累啊,IdentityServer4部署到IIS,跨域问题?
…
正文开始
经过一个乱七八糟的部署过程,下载各种运行环境,各种模块
终于部署完成,访问网页时报错Failed to load resource: net::ERR_CONNECTION_REFUSED
在访问http://localhost:5601/.well-known/openid-configuration报的错
部署的端口设置是这样
5601是IdentityServer4项目的,项目名为xxx.ids
5602是API项目的,项目名为xxx.api
5603是Blazor项目的,项目名为xxx.web,为了方便下面介绍
分析
在这解决问题过程中,也在各种技术群问过,后面才知道有可能是配置的问题
在项目中通过配置文件appsetting.config来配置各种网址和端口
查看报错是在访问IdentityServer4时报错,由于在本地开发和测试过程中,地址都是写localhost,部署到服务器上也是没改
后面尝试着把地址改为服务器的IP地址,三个项目通通都改了
每个项目中都需要配置网址
ids项目需要配置web项目的部署网址,用于授权
api项目需要配置ids项目的部署网址,即授权地址
web项目需要配置ids项目和api项目的部署网址,用于授权和获取api资源
解决
经过了一段折磨,终于可以了
Authorization was successful.
经过了这次问题后,终于醒悟了,配置文件还是得分两个文件
两个配置文件,
一个是开发环境的配置
另一个是部署环境的配置
开发环境的配置网址写localhost
部署环境的配置网址写实际的网站IP
另外提一点,内部服务器不用部署https
部署https需要颁发证书,有点麻烦,弄了很久还是失败了
内部网使用直接部署http就好了
完成WC…