【发布时间】:2021-01-13 15:54:54
【问题描述】:
我正在尝试调试一个微服务。当从 VS 运行时,它在 LaunchSettings.json 设置的端口中启动,但是当使用 exe 运行时,所有微服务都从端口 5001 启动。
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:5004",
"sslPort": 44345
}
},
"profiles": {
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "api/values",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"myapp": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "api/values",
"applicationUrl": "http://localhost:5004",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
【问题讨论】:
-
据我了解,我相信,这些端口仅在调试或运行 Visual Studio 时才有意义。它们不会转移到部署 (exe) 文件中。
-
@Jay 如何让exe文件使用特定端口?
-
再说一次,我不是专家,所以,这是一个猜测。但是微服务,就像在互联网上工作的其他服务一样,在部署时具有默认端口,您无法更改它们,因为它们会与其他默认端口冲突。在本地主机上,您可以控制端口,因为它是您的计算机。但在互联网上,它不是那样工作的。此外,您为什么要在非默认端口上提供服务?除了因为您决定更改端口而使想要使用您的服务的应用程序感到困惑之外,您计划从中获得什么可能的收益。我不明白。
-
@Jay 有几个项目,我需要打开 VS 并启动它们来调试应用程序。这使我的机器变慢,所以我只想运行 exe 进程来调试网关(其中我将在VS中打开)。
-
那么,你的问题应该更新了。您希望通过在 Visual Studio 外部运行来调试您的微服务。然后,也许您可以将您的应用程序放在 Docker 容器中,并使用您想要的端口从 Docker 运行应用程序。这就是我会做的。
标签: c# .net asp.net-core microservices