首页 > 解决方案 > 部署的 gRPC 应用程序将仅使用端口 5000 - 需要它来监听端口 https://asdf.com:30000

问题描述

我很难为一个看似简单的问题找到答案。

我有两个问题:

  1. 我可以让我的小型 gRPC 应用程序在我的开发盒上的端口 http:localhost:5000 或 https:localhost:5001 上运行而不会出现问题。当我进入 launchSettings.json 并删除 http:localhost:5000 时,它会按预期工作,并且只侦听端口 5001。一切都按预期工作。我的应用程序直接抄袭了位于此处的示例 ( https://docs.microsoft.com/en-us/dotnet/architecture/cloud-native/grpc ),因此无需发布任何代码。我只是按照教程进行操作。

  2. 当我将它部署到 Ubuntu 20.04 系统时,无论我在发布的应用程序内容中有什么,它都只监听端口 5000。最重要的是,我想监听端口 30000。我已经打开了那个端口(以及5000 和 5001)在 ufw。我的客户端将无法连接。我想将应用程序 URL 设置为https://some.fqdn.com:30000,但除了蹩脚的端口 5000 之外,我无法让它监听任何其他端口,我什至无法完成这个问题.

我厌倦了看到这个:

信息:Microsoft.Hosting.Lifetime[0] 现在收听:http://localhost: 5000!!

如何让 asp.net grpc 监听面向公众的网络 URL 上的自定义端口?

提前感谢所有有用的评论!史蒂夫

标签: c#.netgrpc

解决方案


好吧,一旦你偶然发现了第 100 万个谷歌搜索,这很容易......

我将以下内容添加到我的 appsettings.json 文件中:

    "Kestrel": {
        "EndPoints": {
            "Https": {
                "Url": "https://some.fqdn.com:30000"
            }
        },
        "EndpointDefaults": {
            "Protocols": "Http2"
        }
    }

现在,我只需要找到一个端到端的例子来说明如何保护客户端和服务器之间的连接,我会很成功!


推荐阅读