菜鸟一只,没接触过串口通信。但最近做个项目,非得用asp.net去实现。要求差不多这样:客户端通过浏览器(点几个按钮)发送想对应的指令,服务器端接受指令并执行指令。不知道能不能实现,希望高手们给点建议,越详细越好。谢谢了

解决方案 »

  1.   

    asp.net 2.0 提供了 SerialPort
      

  2.   

    我用了,但是出错了。我把代码贴上来,帮忙看看
     protected void button1_Click(object sender, System.EventArgs e)
        {
            seriaport1.PortName = "Com1";
            seriaport1.BaudRate = 9600;
            seriaport1.Parity = Parity.Odd;
            seriaport1.StopBits = StopBits.Two;        seriaport1.Open();
            SendStringData(seriaport1);
            ReceiveData(seriaport1);
          
        }    private void SendStringData(SerialPort serialPort)
        {
            serialPort.Write(t_send.Text);
        }    private void ReceiveData(SerialPort serialPort)
        {
            Thread threadReceive = new Thread(new ParameterizedThreadStart(SysReceiveData));
            threadReceive.Start(serialPort);
        }    private void SysReceiveData(object serialPortobj)
        {
            SerialPort serialPort = (SerialPort)serialPortobj;
            System.Threading.Thread.Sleep(0);
            serialPort.ReadTimeout = 1000;
            try
            {
                byte firstByte = Convert.ToByte(serialPort.ReadByte());
                int bytesRead = serialPort.BytesToRead;
                byte[] bytesData = new byte[bytesRead + 1];
                for (int i = 0; i < bytesRead; i++)
                    bytesData[i] = Convert.ToByte(serialPort.ReadByte());
                msg.Text = "\r\n" + System.Text.Encoding.Default.GetString(bytesData).ToString();
            }
            catch (Exception ex)
            {
               msg.Text="发送出错:"+ex.ToString();
            }
            serialPort.Close();
        }错误提示:对端口“Com1”的访问被拒绝。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.UnauthorizedAccessException: 对端口“Com1”的访问被拒绝。 ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。 
      

  3.   

    我也想这个问题,用SerialPort,和想是打开服务器的串口,而不是打开客户端的串口.
     
      

  4.   

    你的代码是连接服务器的串口
    显然IIS权限不够