Запустите программу на сервере через страницу ASP.NET - PullRequest
0 голосов
/ 14 июля 2011

мы используем специальное программное обеспечение, которое обычно работает на одном из наших серверных компьютеров и используется для решения некоторых научных задач и создания сложных графиков (jpg).Проблема с этой программой заключается в том, что она запускается через командную строку и не обеспечивает очень хорошего пользовательского опыта.Чтобы решить эту проблему, я разработал страницу ASP.NET, которая вызывает серверную программу с использованием метода System.Diagnostics.Process и возвращает вычисленные значения пользователям в нашей локальной сети.

Когда я запускаю приложение ASP.NET в режиме отладки (Visual Studio 2010), я вижу окно программы, и все вычисляется правильно.Однако, как только я развернул его на IIS, программа ведет себя странно.Сгенерированные графики не показывают некоторые значения / цветовые коды правильно.Кроме того, я не могу увидеть окно программы, когда процесс ASPNET вызывает программу.

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

Информация о системе: Windows 7 Home IIS 7 Visual Studio 2010 (VB.NET)

Я новичок, поэтому прошу вас предоставить любые ссылки на ключевые термины, если это возможно.

Спасибо

Вот как я вызываю программу из приложения ASP.NET -

Привет, Кев, вот как я вызываю приложение:

        Dim luaProcess As Process = New Diagnostics.Process
        luaProcess.StartInfo.FileName = strFemmExePath
        luaProcess.StartInfo.Arguments = " -lua-script=" + strUserLuaFile

        luaProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal
        luaProcess.StartInfo.UseShellExecute = False
        luaProcess.StartInfo.CreateNoWindow = False
        luaProcess.StartInfo.RedirectStandardError = True
        luaProcess.Start()

Переменные strFemmExePath определяются как путь exe на сервере, то есть C \ Program Files \ FEMM \ bin \ femm.exe.Аргумент принимает файл сценария, который содержит инструкции для программы.

Выходные данные в основном 2 файла:

1 отформатированный текстовый файл, который содержит вычисленные значения, которые я читаю с использованием ASP.NET и отображаю обратно после некоторого форматирования.

Второй файл является растровым файлом, который содержит график.Я конвертирую это растровое изображение в jpeg, используя приложение ASP.NET, потому что оно очень большое по размеру.

1 Ответ

1 голос
/ 14 июля 2011

Единственная причина, по которой вы видите, что ваше консольное приложение работает на компьютере разработчика, заключается в том, что вы используете Visual Studio под своей учетной записью и, скорее всего, используете встроенный сервер Cassini.Это означает, что консольное приложение будет запускаться под вашей учетной записью и будет иметь разрешение на отображение окна консоли.

При запуске под учетной записью службы (например, используемой в рабочем процессе IIS) эти учетные записи не могут взаимодействовать срабочий стол вошедшего в систему пользователя и, следовательно, никогда не будет отображать какой-либо пользовательский интерфейс.

Причин, по которым ваше приложение не выводит графики правильно, может быть много, они могут быть разными и не зная, как это работает.было бы трудно спекулировать.

...