提问人:Neo 提问时间:1/7/2022 最后编辑:Neo 更新时间:2/23/2022 访问量:342
IDX20803:在 docker 上使用 idserver4 时出现 Swagger 页面错误
IDX20803: Swagger page error while using idserver4 on docker
问:
我们有 2 个 docker 容器,每个容器一个用于身份服务器,另一个用于应用程序。我能够授权 swagger 页面,但是当我在 swagger 页面中执行端点时,我看到内部服务器 500 错误。
以下是使用边缘开发工具时的响应: 状态 500,而 SetCsrfCookie //启动器 abp.swagger.js
Request URL: https://mydomainname:8080/abp/Swashbuckle/SetCsrfCookie
Request Method: GET
Status Code: 500
Remote Address: 10.0.0.3:8080
Referrer Policy: strict-origin-when-cross-origin
调用 https://mydomainname:8080/api/entity-name/entityname 时状态 500 //initiator swagger-ui-bundle.js:2
容器出现以下错误:
[INF] Request starting HTTP/2 GET https://mydomainname:8080/abp/Swashbuckle/SetCsrfCookie - -
[ERR] Exception occurred while processing message.
System.InvalidOperationException: IDX20803: Unable to obtain configuration from: 'System.String'.
现在,在遵循一些建议后,我尝试了以下方法:
- 使用 --network 将两个容器放在 docker 中的同一网络中。
- 使用 --network-alias 提供网络别名。
我理解的问题是应用程序容器无法将内部域解析为自身。
在 mydomainname:8080 中找不到 SetCsrfCookie 方法。 我认为我们需要做的是确保容器能够将 mydomainname:8080 解析为自己,其 ip addr 为 172.18.0.4。
我在运行容器时尝试了--add-host,--network-alias等。 目前,我们正在使用计算机中的 hosts 文件将对 VM 10.0.0.3(具有容器)的请求解析为 mydomainname。
我认为的问题是当 vm 中的容器尝试将 mydomainname 解析为自身时。我们该如何解决这个问题?
谢谢
答:
1赞
ViRuSTriNiTy
2/23/2022
#1
应首先启用该标志以获取实际错误消息。ShowPII
这里回答了如何做到这一点。
就我而言,用于获取发现文档的 URL 是错误的,但它可能真的是任何东西。实际的错误消息会给你一个胶水。
评论
1赞
Neo
3/4/2022
对我来说,这是证书不可用的问题。我在容器内添加了证书,错误消失了。感谢您的帮助:)
评论