2

我有一个 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,我的应用程序不会出现异常 - 但串行端口没有任何输出。

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

4

1 回答 1

2

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

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

DtrEnable = true; 
RtsEnable = true;
于 2017-09-08T06:12:19.307 回答