Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Docker仅为http端口返回响应_C#_Docker_Https - Fatal编程技术网

C# Docker仅为http端口返回响应

C# Docker仅为http端口返回响应,c#,docker,https,C#,Docker,Https,这是docker撰写的部分 ecommerce.supplier: container_name: supplier image: ${DOCKER_REGISTRY-}ecommercesupplier build: context: . dockerfile: ECommerce.Supplier/Dockerfile ports: - "5000:80" - "50

这是docker撰写的部分

ecommerce.supplier:
    container_name: supplier
    image: ${DOCKER_REGISTRY-}ecommercesupplier
    build:
        context: .
        dockerfile: ECommerce.Supplier/Dockerfile
    ports:
        - "5000:80"
        - "5001:443"
    env_file: ECommerce.Common/Common.env
    environment:
        - ConnectionStrings__DefaultConnection=Server=host.docker.internal\MSSQLSERVER01;Database=ECommerceSupplier;User Id=sa;Password=123456;MultipleActiveResultSets=true
    restart: on-failure
    volumes:
        - ./.aspnet/supplier/DataProtection-Keys:/root/.aspnet/DataProtection-Keys
    networks: 
        - ecommerce-network
下面是此服务的Docker文件的一部分,该文件公开了端口。该文件由visual studio自动生成

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
这是docker ps:

那么这一切的结果是什么呢。当我击中http://localhost:5000/api/V1/Supplier/getlist 使用带有适当令牌的get请求,我收到一个响应。但如果我试着用相同的终点https://localhost:5001 我在《邮递员》中收到“无法得到任何回应”

我怎样才能让它工作在https://localhost:5001. 我在DEV OPS中的水平是初学者,所以如果你想要更多的信息,请仔细解释你到底需要什么。


旁注:屏幕截图中的所有服务都出现了这种情况。

问题似乎在于,在docker容器中,应用程序没有监听443

也许这两个链接可以帮助您:

我想看看这部分:

version: '3.4'

services:
  webapp:
    image: mcr.microsoft.com/dotnet/core/samples:aspnetapp
    ports:
      - 80
      - 443
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_Kestrel__Certificates__Default__Password=password
      - ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx
    volumes:
      - ~/.aspnet/https:/https:ro
在environment.ASPNETCORE\u URL属性中


希望这有帮助。

端口docker文件公开的内容与此无关。docker compose文件将localhost:5000定向到容器端口80,将localhost:5001定向到容器端口443。如果localhost:5001不工作,那么最可能的原因是在该容器中运行的应用程序没有侦听端口443。您应该进入docker内部并将其卷曲到443上(从docker内部)。可能在启动web应用程序时,仅使用端口80上的绑定。事件如果您的docker绑定为5001->443,则web应用程序不接受443上的请求。@ddfra您能告诉我如何在443上卷曲它,因为我在linux方面的知识低于0。我链接也可以,我试着研究它,但我10分钟都没有成功。我和docker exec一起进入bash——如果你有一个主页,那么“curl”就足够了。它是一个网站还是一个API服务器?(Stack overflow正在curl命令中删除https://我发现了这两个指南:和。