Запустите программу из ASP.NET C # - PullRequest
10 голосов
/ 26 августа 2011

У меня есть программа (я ее создал), и я хочу запустить ее на сервере при загрузке веб-страницы.

Вот код, который у меня есть

public partial class _Default : System.Web.UI.Page
{
    Process app = new Process();
    protected void Page_Load(object sender, EventArgs e)
    {
        app.StartInfo.FileName = @"D:/Path to /My/Program to be run.exe";
        app.Start();
    }
}

В данный момент приложение «запускается», но оно мгновенно падает.Если я просто запускаю приложение (двойным нажатием на exe), оно запускается, и все в порядке.

Кто-нибудь увидит, что я что-то здесь упускаю?

Ответы [ 5 ]

10 голосов
/ 26 августа 2011

Вы можете использовать ProcessStartInfo.

ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"D:/Path to /My/Program to be run.exe";
psi.WorkingDirectory = IO.Path.GetDirectoryName(psi.FileName);
Diagnostics.Process.Start(psi);
3 голосов
/ 11 ноября 2012

Это проблема безопасности.Запуск любого exe-файла из папки bin представляет угрозу безопасности.Вы должны скопировать исполняемый файл, который вы пытаетесь запустить, в папку bin.

3 голосов
/ 27 августа 2011

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

0 голосов
/ 27 августа 2011

Вы пробовали что-то подобное в Javascript: -

var shell = new ActiveXObject("Shell.Application");
var appExe =  @"D:/Path to /My/Program to be run.exe";
shell.ShellExecute(appExe , "", "", "open", "1");
0 голосов
/ 26 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...