Все, что написано для .net 2, должно работать в .net 4 с некоторыми изменениями, которые происходят между ревизиями. Однако использование последовательного порта от asp.net не будет работать на большинстве серверов, поскольку пользователь, использующий процесс asp.net, не будет иметь доступа к оборудованию.
Единственный способ обойти это - создать часть процесса, которая взаимодействует с устройством чтения / записи карт как служба Windows, и добавить какой-либо метод связи с этой службой из приложения asp.net (TCP-соединение или что-то подобное ).