PCSP зависает, когда пользователь не вошел в систему - PullRequest
0 голосов
/ 17 июня 2011

У меня проблема с зависанием PCSP.

  • PCSP вызывается из службы WCF, работающей в IIS в Windows 2008 r2.
  • Служба работает в пуле приложений, который работает как пользователь домена
  • ключ хоста был кэширован для этого пользователя
  • Клиент позвонит в службу через локальную сеть
  • Служба получит это сообщение и передаст файл через внешний сайт

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

Как только сеанс удаленного рабочего стола закончится, и с клиента будет сделан другой вызов, вызов PCSP просто зависнет.

Команда и аргументы, переданные в PSCP, приведены ниже. Далее следует код, который используется для вызова команды

        pscp.exe -pw APassword  -P 22 -sftp -q -batch "\\AServer\AFolder\AFile.csv" auser@service:/adirectory


        System.Diagnostics.Process proc = new System.Diagnostics.Process();
        proc.StartInfo.FileName = executablePath;
        proc.StartInfo.RedirectStandardError = true;
        proc.StartInfo.RedirectStandardOutput = true;
        proc.StartInfo.UseShellExecute = false;
        proc.StartInfo.LoadUserProfile = true;
        proc.StartInfo.Arguments = arguments;

        proc.Start();

        proc.WaitForExit(60 * 60 * 5);

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

1 Ответ

0 голосов
/ 20 июня 2011

После 2 дней, ударившись головой о кирпичную стену, я нашел ответ.

В настройках пула приложений перейдите в раздел «Дополнительные настройки», а в ProcessModel есть настройка «Загрузить профиль пользователя». Установите для этого параметра значение true!

...