На моем локальном компьютере все идет хорошо, но на сервере ничего не происходит, за исключением создаваемого процесса (cms.exe *32).
По моему мнению, основная проблема — разрешения. Я читал в нескольких местах, что IIS по умолчанию блокирует доступ к пакетным файлам из соображений безопасности. Я понимаю проблему, но в моем случае проблем с безопасностью не будет, поэтому я бы хотел все равно запустить свой файл.
Найденные мной решения прошли мимо реализация олицетворения, что означает:
- Изменить web.config
->identity impersonate="true" - Изменить проверку подлинности сайта IIS
-> Олицетворение ASP.NET включено - Предоставьте права доступа к файлу и папкам
- Даже пробовал другую версию шага 1
->identity impersonate="true" userName=**********
- разрешить службе взаимодействовать с рабочим столом в службе администрирования IIS
Код: Выделить всё
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;
}
}
Буду признателен за любой совет, помощь и/или исправления описанных шагов.
Подробнее здесь: https://stackoverflow.com/questions/124 ... iis-server
Мобильная версия