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

本文关键字:访问 串行端口 应用程序 Web NET | 更新日期: 2023-09-27 18:33:04

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

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

如果我关闭我的应用程序,并使用 Termite(终端程序(检查 COM 端口是否正常工作,则数据从串行端口出来就可以了。所以串口、驱动程序等似乎还可以。

如果我在应用尝试打开端口时将 Termite 连接到 COM1,则会出现"拒绝访问"异常(如我预期的那样(。所以我的应用程序似乎确实试图访问正确的端口。

但是,如果没有其他使用 COM1,我的应用程序就不会出现异常 - 但串行端口不会发出任何内容。

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

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

我遇到了同样的问题 - C# SerialPort无法连接到我的串行设备,但尽管遵循了设备手册,但 Termite 可以。

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

DtrEnable = true; 
RtsEnable = true;