3

这里对 Dockers 来说是全新的。

我有一个非常简单的 .NET 45 应用程序,它基于 ServiceStack 框架构建。它们主要是 API 网络服务。

Docker 镜像构建良好,容器部署良好且运行良好,没有问题。我正在使用 Windows Container(不是 Windows 的 docker)。但是,我有一个特定的 Web 服务正在调用第三方 API(旧版),我们正在使用 SOAP 客户端来执行此操作。但是,此 Web 服务总是抛出EndpointNotFound异常:

“在https://externalapi.asmx上没有可以接受消息的端点侦听。这通常是由不正确的地址或 SOAP 操作引起的。有关更多详细信息,请参阅 InnerException(如果存在)。”

我已阅读有关 Windows NAT 问题的信息。我的直觉是自包含容器是孤立的,因此没有与外界的外部互联网连接。我需要在我的 microsoft/iis 映像上配置什么吗?

我的 Docker 文件:

FROM microsoft/iis
SHELL ["powershell"]
RUN Install-WindowsFeature NET-Framework-45-ASPNET ; \
    Install-WindowsFeature Web-Asp-Net45
COPY \ MyAwesomeWebsite
RUN Remove-WebSite -Name 'Default Web Site'
RUN New-Website -Name 'MyAwesomeWebsite' -Port 80 \
    -PhysicalPath 'c:\MyAwesomeWebsite' -ApplicationPool '.NET v4.5'
EXPOSE 80
4

1 回答 1

1

您可以轻松地从容器检查与外部世界的连接。只需登录它并尝试从那里发出相同的呼叫。它可能有很多问题,最简单的一个可能是在您的容器主机上运行的防火墙。例如,对我来说,除非我停止 Mcafee 防火墙,否则它将无法工作,因为 Mcafee 防火墙会看到来自 172.x 子网的流量(默认情况下将在哪个容器上运行)并阻止它。

于 2017-01-26T12:48:30.960 回答