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'.
现在我在遵循了一些建议后尝试了以下操作:
- 使用 --network.
将两个容器放在 docker 中的同一个网络中
- 使用 --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 是错误的,但它实际上可以是任何东西。实际的错误信息会给你一个胶水。
我们有 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'.
现在我在遵循了一些建议后尝试了以下操作:
- 使用 --network. 将两个容器放在 docker 中的同一个网络中
- 使用 --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 是错误的,但它实际上可以是任何东西。实际的错误信息会给你一个胶水。