Запуск bat-файла на сервере IISC#

Место общения программистов C#
Ответить
Anonymous
 Запуск bat-файла на сервере IIS

Сообщение Anonymous »

Я пытаюсь запустить файл .bat на сервере Windows 2008 R2 64bit с IIS версии 6.1 SP1.
На моем локальном компьютере все идет хорошо, но на сервере ничего не происходит, за исключением создаваемого процесса (cms.exe *32).
По моему мнению, основная проблема — разрешения. Я читал в нескольких местах, что IIS по умолчанию блокирует доступ к пакетным файлам из соображений безопасности. Я понимаю проблему, но в моем случае проблем с безопасностью не будет, поэтому я бы хотел все равно запустить свой файл.

Найденные мной решения прошли мимо реализация олицетворения, что означает:
  • Изменить web.config
    ->identity impersonate="true"
  • Изменить проверку подлинности сайта IIS
    -> Олицетворение ASP.NET включено
  • Предоставьте права доступа к файлу и папкам
  • Даже пробовал другую версию шага 1
    ->identity impersonate="true" userName=**********
Предоставить разрешения Пользователь IIS:
  • разрешить службе взаимодействовать с рабочим столом в службе администрирования IIS
Чтобы вызвать пакет, я использую следующий код на C#:

Код: Выделить всё

private void StartPervasive(string npu)
{

try
{

ProcessStartInfo startInfo = new ProcessStartInfo(ConfigurationManager.AppSettings.Get("PervasivePath"));

//startInfo.UseShellExecute = true;
//startInfo.WorkingDirectory = ConfigurationManager.AppSettings.Get("PervasiveWorkingPath");
//startInfo.WindowStyle = ProcessWindowStyle.Normal;
//startInfo.RedirectStandardInput = true;
//startInfo.RedirectStandardError = true;
//startInfo.RedirectStandardOutput = true;

//startInfo.FileName = ConfigurationManager.AppSettings.Get("PervasivePath");

startInfo.Arguments = npu;
Process myProcess = Process.Start(startInfo);

//StreamReader sr = File.OpenText(ConfigurationManager.AppSettings.Get("PervasivePath"));
//StreamWriter sw = myProcess.StandardInput;

//while (sr.Peek() != -1)
//{
//    string readed = sr.ReadLine();
//    readed = readed.Replace("%1", npu);
//    sw.WriteLine(readed + Environment.NewLine);
//}

//myProcess.WaitForExit();
//myProcess.Close();

}
catch (Exception ex)
{
throw ex;
}
}
Также следует отметить, что я пытался выполнить другие файлы, включая файлы .exe, но безрезультатно.
Буду признателен за любой совет, помощь и/или исправления описанных шагов.

Подробнее здесь: https://stackoverflow.com/questions/124 ... iis-server
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»