Это то, что я использую в своем приложении для локального последовательного порта:
using System.IO.Ports;
SerialPort testPort = new SerialPort();
testPort.DataReceived += testPort_DataReceived;
При каждом получении данных вызывается функция DataReceived.Я использую его для чтения ввода в буфер.
Совет: Чтобы связать функцию DataReceived, вы можете просто нажать вкладку после ввода «+ =».Visual Studio должна создать эту функцию для вас.
Я не уверен насчет веб-форм, но для захвата последовательных событий это должно работать.