我已经停靠了我的Web应用程序,可以在Visual Studio中运行它,但是,它选择使用的主机端口号不一致。
在哪里配置它以始终使用相同的端口号?
kfgdxczn1#
我发现我可以通过编辑launchSettings.json并在那里指定值来完成这一点。这与Arjun的答案相似,但据我所知,没有像选择IIS Express时那样添加端口号的UI-所以你必须直接编辑文件。
launchSettings.json
**更新:**实际上,在我的例子中,我仍然有问题让矶钓号一致后,这样做。我的工作是右键单击项目,并添加“容器编排支持”。然后设置矶钓号在码头组成项目。这有助于覆盖环境变量以及。**更新2:**对于在launchSettings.json中更改端口号的任何人,您可能还需要删除任何现有容器和/或映像才能使更改生效。清理解决方案对我来说不够。我必须从Docker Desktop中删除它们。
px9o7tmv2#
在您的项目launchSettings.json中添加以下项(黄色):
mwecs4sa3#
对我来说,我能够在Visual Studio 2017中通过以下步骤找到它:1.右键单击Web项目,然后单击属性。1.单击“调试”选项卡。1.在“配置文件IIS Express”下,您将在“应用程序URL”框中找到端口。欲了解更多信息,请访问:Docker Port Managing
sh7euo9m4#
在VS 2019中添加了Docker-compose编排支持后,我遇到了同样的问题。
ports: - "80" - "443"
到
ports: - "80:80" - "443:443"
根据Docker-compose文档,端口配置方式如下:-可以同时指定ports (HOST:CONTAINER),也可以只指定容器端口(选择临时主机端口)。因此,由于主机端口未在默认VS 2019 Docker-compose文件中定义,因此选择了ephemerally。我不得不查找该词的定义,该词似乎是transient的同义词。持续很短时间的。
ports (HOST:CONTAINER)
ephemerally
xurqigkl5#
没有UI,但您可以修改. csproj项目文件以添加DockerfileRunArguments
<PropertyGroup> <DockerLaunchAction>LaunchBrowser</DockerLaunchAction> <DockerLaunchUrl>http://{ServiceIPAddress}</DockerLaunchUrl> <DockerfileRunArguments>-p 8080:80</DockerfileRunArguments> </PropertyGroup>
编辑:如果你使用的是NetCore,那么你可以使用launchSettings.json解决方案。对于框架,你可以使用"容器编排支持"或这个hack。
mbskvtky6#
我在docker-compose.yml中设置了端口,但是它不起作用。原来它被docker-compose.override.yml覆盖了。您可以:
cxfofazt7#
我尝试在launchSettings.json中设置"httpPort": 8080,但根本不起作用,甚至在删除并重新创建容器之后也是如此。对我有效的是:右键单击Visual Studio中的project〉Add〉Container Orchestration Support(如果您已经设置了此操作,则不需要再次执行此操作)这将设置一个docker-compose.yml文件,其中Dockerfile用于应用程序。还有一个docker-compose.override.yml文件,用于使用特定于环境的设置覆盖docker-compose.yml(例如,用于dev或prod)。默认情况下,这会将容器端口公开为端口80,但不公开固定主机端口来Map容器端口ot。要更改它(例如,Map8080的固定主机端口):
"httpPort": 8080
Add
Container Orchestration Support
docker-compose.yml
Dockerfile
docker-compose.override.yml
80
8080
version: '3.4' services: coreapp: environment: - ASPNETCORE_ENVIRONMENT=Development ports: - "8080:80"
"8080:80"
h4cxqtbf8#
我遇到了同样的问题,不得不修改docker-compose项目中的docker-compose. override. yml。最初,端口部分看起来像这样(这导致自动端口分配):
我改成了
ports: - "8080:80" - "56850:443"
这就迫使Debug使用指定的端口。
8条答案
按热度按时间kfgdxczn1#
我发现我可以通过编辑
launchSettings.json
并在那里指定值来完成这一点。这与Arjun的答案相似,但据我所知,没有像选择IIS Express时那样添加端口号的UI-所以你必须直接编辑文件。**更新:**实际上,在我的例子中,我仍然有问题让矶钓号一致后,这样做。我的工作是右键单击项目,并添加“容器编排支持”。然后设置矶钓号在码头组成项目。这有助于覆盖环境变量以及。
**更新2:**对于在
launchSettings.json
中更改端口号的任何人,您可能还需要删除任何现有容器和/或映像才能使更改生效。清理解决方案对我来说不够。我必须从Docker Desktop中删除它们。px9o7tmv2#
在您的项目launchSettings.json中添加以下项(黄色):
mwecs4sa3#
对我来说,我能够在Visual Studio 2017中通过以下步骤找到它:
1.右键单击Web项目,然后单击属性。
1.单击“调试”选项卡。
1.在“配置文件IIS Express”下,您将在“应用程序URL”框中找到端口。
欲了解更多信息,请访问:Docker Port Managing
sh7euo9m4#
在VS 2019中添加了Docker-compose编排支持后,我遇到了同样的问题。
到
根据Docker-compose文档,端口配置方式如下:-
可以同时指定
ports (HOST:CONTAINER)
,也可以只指定容器端口(选择临时主机端口)。因此,由于主机端口未在默认VS 2019 Docker-compose文件中定义,因此选择了
ephemerally
。我不得不查找该词的定义,该词似乎是transient的同义词。持续很短时间的。
xurqigkl5#
没有UI,但您可以修改. csproj项目文件以添加DockerfileRunArguments
编辑:
如果你使用的是NetCore,那么你可以使用launchSettings.json解决方案。对于框架,你可以使用"容器编排支持"或这个hack。
mbskvtky6#
我在docker-compose.yml中设置了端口,但是它不起作用。原来它被docker-compose.override.yml覆盖了。
您可以:
cxfofazt7#
我尝试在launchSettings.json中设置
"httpPort": 8080
,但根本不起作用,甚至在删除并重新创建容器之后也是如此。对我有效的是:
右键单击Visual Studio中的project〉
Add
〉Container Orchestration Support
(如果您已经设置了此操作,则不需要再次执行此操作)这将设置一个
docker-compose.yml
文件,其中Dockerfile
用于应用程序。还有一个docker-compose.override.yml
文件,用于使用特定于环境的设置覆盖docker-compose.yml
(例如,用于dev或prod)。默认情况下,这会将容器端口公开为端口80
,但不公开固定主机端口来Map容器端口ot。要更改它(例如,Map8080
的固定主机端口):"8080:80"
h4cxqtbf8#
我遇到了同样的问题,不得不修改docker-compose项目中的docker-compose. override. yml。
最初,端口部分看起来像这样(这导致自动端口分配):
我改成了
这就迫使Debug使用指定的端口。