Как удаленно (на другом компьютере в локальной сети) из программы провести ряд простых действий (открыть COM-порт, удалить файл)?
Есть программа написанная на C# и работающая с прибором по COM-порту. Программа установлена и прекрасно работает в том случае, если и она и COM-порт установлены на машине А. Однако есть необходимость в запуске программы с другого компьютера (машина Б) с доступом к прибору (прибор доступен напрямую только с машины А). Оба компа соединены по сети.
Есть ли возможность удаленно с машины Б открыть порт на машине А и связаться программой с прибором? Решения типа VSPE прошу не предлагать. Требуется именно либо штатными Windows средствами, либо написанием доп. модуля в программе это сделать (но тут вопрос, с использованием чего). DCOM, RPC, NET Remoting?
Это для:
Поддерживаемые операционные системы: Windows XP Service Pack 3
есть пакет для WinSvr2003, более поздние системы (vista /svr2008r1) должны были через WinUpdate получить обновление, в состав Win7/Svr2008R2 входит изначально.
В принципе, в вашем случае я бы писал связку на PoSh + WinRM, на повершелле достаточно легко (особенно если у вас есть опыт «обычного» программирования) написать нужный скрипт (чтение COM, операции с файлами), и запускать его с нужной машины. Учитывая что PS умеет вызывать .NET и отлично с ним работать, то будет наилучшим соотношением время_разработки/штатные_решения =)
RDP умеет делать перенаправление COM-портов, можно вызывать его из программы. Или посмотреть RDP-клиенты с исходными кодами, чтобы включить модулем в свою программу. Например, freerdp: www.freerdp.com/.
Да ведь хочется монолитного решения — если виндовые средства, то все ими же делать, а если модуль дописывать, то писать со всем нужным функционалом. А то придется каждый раз донастраивать систему. Можно конечно написать клиент-серверную плюшку, но уж тогда на NET Remoting.
WinRM штука мощная, но требует, чтобы она была включена на обоих сторонах, кроме того, она ориентирована на использование в доменной среде. Более интересным вариантом является PowerShell, хотя тут тоже есть нюанс — по дефолту в PS выключено исполнение не подписанных скриптов.
Да, есть море аппаратных решений, но… :) Кстати, указанный вами вариант (первый) довольно хорош — девайс вот уже второй год без сбоев в режиме опроса 24/7 держит 4 порта.