Net 5.0 API 在本地运行,但在服务器上时返回 404

问题描述

在这个问题上挣扎了很长一段时间。所以这就是我正在做的。在本地,我在 Windows 10 上使用 Visual Studio,同时我使用 ubuntu 18.04 作为我的服务器创建了一个 Digital Ocean Droplet。我在服务器上安装了 dotnet-sdk-5.0

然后我:

  1. 使用 VS 将我的 API 发布到文件夹,针对 linux-64(见下图)

enter image description here

  1. 使用构建的文件创建 publish 目录的 *.zip 文件

  2. 使用 sftp 将 zip 上传到服务器上的 /var/www/glista/ 并在那里解压。

  3. cd /var/www/glista/publish/ 在服务器上

  4. 使用 dotnet Glista.Api.dll 运行 net 5.0 api。

  5. 然后我向服务器打开了另一个 ssh 实例。并使用 wget https://localhost:5001/swagger/index.html --no-check-certificate 查看我的本地主机是否正在运行并有任何数据。嗯......输出是:

    wget https://localhost:5001/swagger/index.html --no-check-certificate --2021-02-08 11:05:53-- https://localhost:5001/swagger/index.html 解析本地主机(本地主机)... 127.0.0.1 连接到 localhost (localhost)|127.0.0.1|:5001... 已连接。 警告:无法验证本地主机的证书,由“CN=localhost”颁发: 无法在本地验证发行人的权限。 已发送 HTTP 请求,正在等待响应... 404 Not Found 2021-02-08 11:05:54 错误 404:未找到。

这不是我所期望的。

请注意:在我的本地机器,Windows 和 VS 上,此代码运行无错误,我可以正常打开 localhost:5001/swagger/index.html。但是,通过上述步骤,我无法在服务器端执行某些操作。为了这个例子,我排除了任何与 apache/Nginx 相关的问题,因此我使用了 wget

在这里做错了什么?为什么是 404?如果重要:我还在服务器上打开了端口 5000 和 5001。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)