Можно ли запустить файл .EXE на сервере с помощью приложения Silverlight? - PullRequest
0 голосов
/ 19 апреля 2011

Я думал, что это будет очень легкая задача, поэтому я думаю, что я отсталый или что-то в этом роде.Я хочу развернуть тестовое приложение, которое выполняет следующие действия:

  1. Пользователь открывает приложение Silverlight с помощью браузера
  2. Пользователь заполняет форму Silverlight и нажимает кнопку «ОК».
  3. Функция обратного вызова кнопки подготавливает форму для передачи в качестве аргумента .EXE-программе.
  4. program.exe -аргумент выполняется.Если все идет хорошо, файл result.txt генерируется по известному пути.
  5. Приложение Silverlight сообщает о результате.txt

Моя единственная проблема на данный момент - это 4-й шагпотому что я не могу выполнить свою программу .exe без System.Diagnostics.Process.Я пробовал COM-решение, но оно не подходит для этих тестов.

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Как вы уже поняли, Silverlight фактически работает внутри браузера локально, используя подмножество .NET Framework с несколько ограниченной поддержкой выполнения локального кода даже с доверенным статусом.

Чтобы быть справедливым ... Silverlight может быть чрезмерным для этого, но если вы хотите сделать это, и вы запускаете процесс на сервере:

  • Создайте новый проект Silverlight, который поддерживает службы RIA
  • Создайте DomainService и добавьте единственный метод Invoke, который выглядит следующим образом:

    [Вызвать] открытая строка RunProcess (args ...)

  • Создайте кнопку, которая вызывает метод Invoke в RunProcess и передает параметры. Как и для всех сервисных вызовов в Silverlight, это асинхронный обратный вызов, и вы захотите подключить лямбду, чтобы получить результат, когда он будет готов.

  • В RunProcess, который на самом деле находится на стороне сервера, запустите процесс и просто верните результат в результате вызова метода в виде строки или некоторого другого типа данных, которые имеют смысл для того, что вы хотите отобразить.
1 голос
/ 19 апреля 2011

Рассматривали ли вы запуск службы Windows на сервере, который отслеживает наличие файла в указанном каталоге, а затем запускает EXE-файл для создания текстового файла?Ваш процесс Silverlight может просто опрашивать выходной каталог, пока не появится текстовый файл.

...