Запуск сценария perl из приложения asp.net, развернутого на IIS 7.5 - PullRequest
0 голосов
/ 28 апреля 2011

У меня очень срочные требования. У меня есть приложение ASP.net на платформе 4.0 сделано в архитектуре MVC. В приложении я вызываю Perl-скрипт для копирования данных из MySQL в SQL Server 2010 в бэкэнд. Когда я запускаю приложение из Visual Studio 2010, сценарий Perl успешно выполняется и данные копируются. Но когда я развертываю то же приложение в IIS 7.5, оно не показывает никаких изменений или сценарий Perl не запускается. Я попытался напечатать каждый шаг кода и обнаружил, что все пути верны. Скрипт perl должен запускаться через командный файл.

Ниже приведен код для запуска процесса, запускающего пакетный файл, который, в свою очередь, запускает Perl-скрипт:

string strPath = string.Empty;
string strDirectory = string.Empty;
try {   
    strPath = "/k " + ConfigurationManager.AppSettings["UploadTLInfo"];//Path of the batch file comes from here 
    strDirectory = ConfigurationManager.AppSettings["WorkingDirectory"];
    ProcessStartInfo psi = new ProcessStartInfo("cmd.exe",strPath);
    psi.UseShellExecute = false;
    psi.WorkingDirectory = strDirectory;
    //psi.CreateNoWindow = true;
    //psi.WindowStyle = ProcessWindowStyle.Hidden;
    Process p = new Process();
    p.StartInfo = psi;
    p.Start();                
} catch (Exception ex) {
    throw ex;
}

1 Ответ

0 голосов
/ 28 апреля 2011

Скорее всего, ваша проблема будет связана с разрешениями пользователя - при запуске из VS вы, вероятно, используете сервер ASP.NET Dev и использует учетные данные текущего пользователя, а при запуске из IIS он будет использовать NETWORK_SERVICE (или аналогичные пользователи системы), которые могут иметь ограниченные разрешения, вызывающие проблему. Другой (но маловероятной) проблемой может быть то, что пакетный файл и / или перл могут полагаться на некоторую переменную среды, которая не определена на уровне компьютера и т. Д.

Одним из решений было бы запустить процесс, выдавая себя за другого пользователя с определенным разрешением и / или средой ( см. Это для запуска процесса от имени другого пользователя ).

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