运行独立的 .net 核心可执行文件不响应请求



我正在遵循教程,并编译了一个.net独立应用程序并将其发送到我的Ubuntu 16.10服务器。现在我正在运行该应用程序,一切似乎都可以正常工作

$ ./MvcMovie
Hosting environment: Production
Content root path: /home/nnkuu/CEPublished/publish
Now listening on: http://localhost:5000
Application started. Press Ctrl+C to shut down.

但是当我尝试在 http://SERVER_IP:5000 通过我的 Web 浏览器访问服务器时,浏览器无法建立连接。我做错了什么?

问题是服务器正在侦听http://localhost:5000。这意味着,如果您从与http://localhost:5000相同的计算机访问该应用程序,它将起作用,但如果您从另一台计算机访问它,它将不起作用。

您需要做的是更改应用程序正在侦听的 URL。最简单的方法是将以下行添加到main方法中的WebHostBuilder设置中:

.UseUrls("http://*:5000")

我通过使nginx充当代理来解决此问题,该代理将流量从外部接口上的端口80转发到.net应用程序正在侦听的内部接口上的端口5000。这是通过使用以下配置文件运行nginx来完成的:

# Default server configuration
#
server {
listen 80;
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
server_name <server_name or IP address>;
location / {
proxy_pass http://127.0.0.1:5000;
}
}

最新更新