IDX20803:在 docker 上使用 idserver4 时出现 Swagger 页面错误

IDX20803: Swagger page error while using idserver4 on docker

我们有 2 个 docker 个容器,每个容器 1 个用于身份服务器,另一个用于应用程序。我能够授权 swagger 页面,但是当我在 swagger 页面中执行端点时,我看到 Internal Server 500 error.

以下是使用边缘开发工具时的响应: Status 500 while 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

Status 500 while calling https://mydomainname:8080/api/entity-name/entityname //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'.

现在我在遵循了一些建议后尝试了以下操作:

  1. 使用 --network.
  2. 将两个容器放在 docker 中的同一个网络中
  3. 使用 --network-alias 给网络别名。

我理解的问题是应用程序容器无法将内部域解析为自身。

在 mydomainname:8080 找不到 SetCsrfCookie 方法。 我想我们需要做的是确保容器能够解析 mydomainname:8080 到它自己,它的 ip 地址是 172.18.0.4.

我在 运行 容器时尝试了 --add-host、--network-alias 等。 目前我们正在通过使用我们机器中的主机文件将对 VM 10.0.0.3(具有容器)的请求解析到 mydomainname。

我认为的问题是当 vm 中的容器试图将 mydomainname 解析为自身时。我们如何解决这个问题?

谢谢

您应该首先启用 ShowPII 标志以获取实际的错误消息。

回答了这是如何完成的

在我的例子中,用于获取发现文档的 URL 是错误的,但它实际上可以是任何东西。实际的错误信息会给你一个胶水。