C# WEB界面部署到Linux服务器问题

使用1台阿里云服务器,无桌面的Linux系统。远方现场有数据采集设备,采集设备通过RS485硬件接口连接1台DTU(有4G流量卡),DTU已配置了服务器的IP地址和端口,上电后DTU主动连接到服务器,并透传采集设备的数据到服务器。
现在的需求:需要对采集设备进行配置,比如工作时间的修改、上传数据周期的修改等。通过咨询一些人,说可以做一个WEB界面,可以在界面里填入下发指令,然后下发给DTU,再透传给采集设备。

问题:(1)能使用C#做这个WEB界面吗,或者用什么更容易实现。
(2)WEB界面里要能填写命令字节,可以下发;同时能接收采集设备的反馈应答
(3)这个WEB界面做好了,需要像部署应用程序一样部署到Linux系统的服务器上吗,这个怎么实现;最后想实现的就是输入Linux系统服务器的IP和固定端口号,就能打开这个WEB界面,然后在里面输入命令字节进行操作。

(1)这个web界面需求不复杂,用html+css+js就可以实现.
(2)如果已经实现api,只需要将web界面进行接口对接即可
(3)需要,你可以在linux安装一个nginx服务器,然后将web界面部署在nginx服务器上.这样就可以通过ip:端口/路径 进行访问web界面

可以,用 asp.net core + .net core 实现 web 服务器,在linux上部署,所谓的界面,是在客户端用浏览器访问时候出现的,这个没问题。

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:
    1. 根据参考资料,C#是一种多用途的编程语言,可以用于开发Web界面。因此,你可以使用C#来开发这个WEB界面。下面是一个简单的使用C#开发Web界面的示例:
    using System;
    using System.Web.UI;
    
    public partial class Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // 页面加载逻辑
        }
    
        protected void Button_Click(object sender, EventArgs e)
        {
            // 按钮点击逻辑
        }
    }
    
    1. 为了能够填写命令字节并下发,并且接收采集设备的反馈应答,你需要在C#中使用适当的网络通信库,并使用相关的协议与设备进行通信。你可以使用C#的Socket类库来实现这个功能。下面是一个简单的示例:
    using System;
    using System.Net.Sockets;
    
    public class SocketClient
    {
        public static void Main()
        {
            // 创建TCP Client连接
            TcpClient client = new TcpClient("设备IP地址", 端口号);
    
            // 创建网络流
            NetworkStream stream = client.GetStream();
    
            // 发送命令字节
            byte[] command = { 0x01, 0x02, 0x03 }; // 假设命令字节是 0x01 0x02 0x03
            stream.Write(command, 0, command.Length);
    
            // 接收反馈应答
            byte[] response = new byte[1024];
            int bytesRead = stream.Read(response, 0, response.Length);
            string responseString = System.Text.Encoding.ASCII.GetString(response, 0, bytesRead);
    
            // 处理反馈应答
            Console.WriteLine("反馈应答: " + responseString);
    
            // 关闭连接
            stream.Close();
            client.Close();
        }
    }
    
    1. 在部署这个WEB界面到Linux服务器上时,你可以使用Mono框架来运行C#程序,并将程序打包为一个可执行文件。下面是一个简单的步骤:

    2. 安装Mono框架:在Linux服务器上安装Mono框架,以便能够运行C#程序。

    3. 编译C#程序:使用C#编译器编译你的C#代码,生成可执行文件。

    mcs -out:webinterface.exe webinterface.cs
    
    • 运行C#程序:使用Mono框架运行你的C#程序。
    mono webinterface.exe
    
    • 配置Web服务器:将Web服务器(如Nginx或Apache)配置为代理请求到你的C#程序。

    例如,使用Nginx配置代理:

    location / {
        proxy_pass http://localhost:8000; # 假设你的C#程序运行在8000端口
    }
    
    • 启动Web服务器:启动你的Web服务器并访问Linux服务器的IP和固定端口号来打开这个WEB界面。

    请注意,这里只是给出了一个基本的部署过程,具体的部署方式可能因你的服务器环境和需求而有所不同。你可能需要进一步了解和配置你使用的Web服务器和Mono框架来完成部署。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^