C#.NET从Web应用程序访问串行端口

时间:2013-09-28 10:50:07

标签: c# .net windows iis serial-port

我有一个C#.NET Web应用程序,它运行在Server 2008 R2,.NET v4,MVC 3,SQL Server 2012上的IIS 7中。该应用程序已经在一堆机器上运行,但我们刚刚有了一个新的电脑和这台机器上的行为略有不同。

特别是,当应用程序打开System.IO.Ports.SerialPort并写入时,实际上没有数据在COM1上传输。似乎也没有例外。该应用程序继续等待响应,并超时。

如果我关闭我的应用程序,并使用Termite(终端程序)检查COM端口是否正常工作,那么数据就会从串口输出。所以串口,驱动程序等似乎没问题。

当我的应用程序尝试打开端口时,如果我将Termite连接到COM1,则会出现Access Denied异常(正如我所料)。所以我的应用程序确实试图访问正确的端口。

但如果没有其他东西使用COM1,我的应用程序没有例外 - 但串口没有任何东西。

有没有人对如何调试这种情况有任何建议?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题 - C#SerialPort无法连接到我的串行设备,但Termite可能无法使用设备手册。

我将SerialPort属性与我的白蚁设置进行了比较,发现两者之间存在一些术语差异。例如,Termite有一个“DTR / DTS”选项(我需要),而SerialPort没有任何名为“DTS”的选项。设置SerialPort对象的这些属性对我有用:

DtrEnable = true; 
RtsEnable = true;