Ubuntu 上的 ASP.Net Core 应用程序服务仅侦听端口 5000

2023-11-27

我正在尝试在 Ubuntu 服务器上托管 ASP.Net Core MVC 应用程序(启用了 https 重定向),使用 Nginx 作为反向代理。我已使用 OpenSSL 创建并安装了本地 SSL 证书。当我使用 dotnet CLI 运行我的应用程序时,它会同时侦听http://本地主机:5000 & https://本地主机:5001,我可以使用 https 在网络上访问它(http 请求被 Nginx 重定向到 https)。

问题是当我尝试将其作为服务运行时,它只侦听http://本地主机:5000.

这是 *.service 文件:

[Unit]
Description=Test ASP.Net core web application service.

[Service]
WorkingDirectory=/home/ubuntu/MyAppFolder
ExecStart=/usr/bin/dotnet/home/ubuntu/MyAppFolder/MyApplication.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
SyslogIdentifier=MyApplication
User=www-data
Environment=ASPNETCORE_ENVIRONMENT=Development
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
Environment=ASPNETCORE_HTTPS_PORT=5001
Environment=ASPNETCORE_URLS=http://localhost:5000;https://localhost:5001

[Install]
WantedBy=multi-user.target

环境详情:ASP.Net Core 2.1.1、ASP.Net Core SDK 2.1.3、Nginx 1.14、Ubuntu 16.04


最后我弄清楚了这个问题。问题是开发人员 ssl 证书是与 dotnet SDK 一起安装的,名称为 localhost。对于 Ubuntu,证书位于 /home/{用户名} /.dotnet/corefx/cryptography/x509stores/my

Kestrel 只是在执行用户的主目录中搜索,该目录不存在“www-data”,因此它无法找到开发证书。因此它不会绑定到默认的 https 端口。

为了让它工作,我首先在 PEM 中转换了我现有的证书(.crt) 格式转换为 PKCS12 (.pkf)使用 OpenSSL。下面是命令。

sudo openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile more.crt

然后我需要使用 appsettings.json 文件将此证书指定给 Kestrel 服务器。下面是文件现在的样子:

{
  "ConnectionStrings": {
    "PostgresConnection": "Host=localhost; Database=postgres; Username=postgres; Password=xyz123"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Warning"
    }
  },

  "Kestrel": {
    "Endpoints": {
      "HTTPS": {
        "Url": "https://localhost:5001",
        "Certificate": {
          "Path": "/etc/ssl/certs/<certificate.pfx>",
          "Password": "xyz123"
        }
      }
    }
  }
}

然后您需要将 www-data 用户添加到 ssl-certs 组。下面是命令行:

sudo usermod -aG ssl-cert www-data
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 上的 ASP.Net Core 应用程序服务仅侦听端口 5000 的相关文章

随机推荐

  • 在对象上调用 getter 与将其存储为局部变量(内存占用、性能)

    在下面的代码中我们进行调用listType getDescription twice for ListType listType this listTypeManager getSelectableListTypes if listType
  • spring-boot + tomcat RewriteValve

    是否可以以某种方式自定义嵌入式 tomcat重写阀 正如我所看到的api目前只有以下方法添加上下文阀 and 添加发动机阀门但正如 Tomcat 在文档中指出的那样 RewriteValve 应该放置在 Host 中或 web 应用程序的
  • Python 中确定特定函数是否在堆栈上的有效方法

    对于调试来说 判断特定函数是否位于调用堆栈的较高位置通常很有用 例如 我们通常只想在某个函数调用我们时运行调试代码 一种解决方案是检查上方的所有堆栈条目 但如果这是在堆栈深处并重复调用的函数中 这会导致过多的开销 问题是找到一种方法 使我们
  • java在哪里寻找文件?

    我正在尝试用java读取文件 Public class Test public static void main String args throws IOException BufferedReader f new BufferedRea
  • 将 Nhibernate 查询转换为通用列表时出错

    我有一个简单的实体称为EmployeeEntity有属性ID Name Age Organisation and Designation 我只是使用查询来查询数据库 IQuery query session CreateQuery sele
  • 忽略 Powershell Invoke-RestMethod 中的自签名证书不起作用(又变了......)

    使用忽略证书验证的标准解决方案后 Invoke RestMethod正在返回 Invoke RestMethod A system error occurred and has been logged Please try again la
  • Matlab - 如何替换向量中的所有特殊字符?

    是否可以通过正则表达式替换matlab向量中的所有特殊字符 谢谢 EDIT 谢谢你的回复 我正在努力实现以下目标 我有一个文本文件 其中包含小说中的几个段落 我已将此文件读入向量 fileText Token1 token 2 token
  • 静态对象的私有析构函数是如何调用的? [复制]

    这个问题在这里已经有答案了 可能的重复 无法访问单例类析构函数中的私有成员 我正在实现一个单例 如下所示 class A public static A instance private A void cout lt lt In the c
  • 为什么需要将 ~/.rbenv/bin 添加到我的路径中?

    我读到rbenv 无法更改全局 ruby 版本我需要添加 rbenv bin到我的 PATH 以便 rbenv 工作 文中也提到了这一点rbenv 文档但该目录不存在 如下所示 ls a rbenv plugins shims versio
  • .NET 反射:检测 IEnumerable

    我正在尝试检测 Type 对象的特定实例是否是通用的 IEnumerable 我能想到的最好的办法是 theType might be typeof IEnumerable
  • Sqlplus可以将文件内容读取到变量中吗?

    我已经修改 sqlplus 一段时间了 我已经设法让 sqlplus 将文件的内容读入替换变量 如下所示 exit sqlplus s login pass db script sql cat file txt 这主要按照我的脚本要求工作
  • 使用 DirectShow.NET 从网络摄像头捕获帧

    我是 DirectShow 的新手 所以这个库的某些部分我不太理解 我已经看到示例 DxSnap 但我需要捕获帧而不预览它 进行进一步处理 我该怎么做 如果您主要关心的是 访问网络摄像头 而不是 使用 DirectShow 访问网络摄像头
  • AVPlayer 不同步

    我实在是没办法了 只好再请教大家了 我正在构建一个使用 AVPlayer 的三个实例的 iPhone 应用程序 他们同时进行比赛 这一点非常重要 我曾经运行过这段代码 CMClockRef syncTime CMClockGetHostTi
  • Paho MQTT Android 服务问题

    我正在我正在开发的应用程序中实现 Paho MQTT Android 服务 在测试了 Paho 提供的示例应用程序后 我发现有一些我想要更改的内容 https eclipse org paho clients android 一旦应用程序完
  • 如何使用动画为搜索栏添加动画

    我是安卓新手 我正在尝试为水平搜索栏设置动画 但到目前为止还无法做到 我只想要一个动画 其中搜索栏显示某个持续时间 例如 1 分钟 的进度 有人可以建议 给出关于如何为标准搜索栏设置动画的想法 代码片段吗 我应该使用哪种动画 例如 obje
  • 在 PHP 中,如何添加到零填充数字字符串并保留零填充?

    如果我在 PHP 中有一个变量包含0001我加 1 结果是 2 而不是0002 我该如何解决这个问题 foo sprintf 04d foo 1
  • 应用程序确实收到本地通知未触发 iOS 7

    问题 void application UIApplication application didReceiveLocalNotification UILocalNotification notification 有时在 iOS 7 中不会
  • 如何在 pandas groupby 中聚合多列

    我使用以下输入创建了一个 pandas 数据框 mn keyA state n1 n2 d1 d2 key1 CA 100 1000 1 2 key2 FL 200 2000 2 4 key1 CA 300 3000 3 6 key1 AL
  • R重命名函数中传递的列

    我一直在寻找这个并发现这个链接有助于重命名函数中传递的列 column name 实际制作的代码my function1在我寻找了一段时间后工作 有没有办法使用管道运算符来重命名函数内数据框中的列 我的尝试显示在my function2但它
  • Ubuntu 上的 ASP.Net Core 应用程序服务仅侦听端口 5000

    我正在尝试在 Ubuntu 服务器上托管 ASP Net Core MVC 应用程序 启用了 https 重定向 使用 Nginx 作为反向代理 我已使用 OpenSSL 创建并安装了本地 SSL 证书 当我使用 dotnet CLI 运行