Ну, это может быть сложно из-за параллелизма при вызовах программы на C #.
Вы можете создать Web-сервис, который запускает программу на C # с переменными в качестве аргументов.
Или вы можете записать переменные в таблицу и провести опрос программы на C # для новых записей в этой таблице. Это позволит преодолеть проблему параллелизма. В сочетании с WebService, который записывает переменные в таблицу, это решение работает просто отлично.