У меня есть служба WCF
, размещенная на IIS 7.5
. Сервис хорошо работает, за исключением того, что ему нужно запустить пакетный файл. код на службе, который используется для этой операции:Запуск процесса от IIS
try
{
Process p = new Process();
p.StartInfo.UseShellExecute = false;
p.StartInfo.FileName = @"\\MyDomain\asp\Masof\App_Data\mish.bat";
p.Start();
p.WaitForExit();
return 1;
}
catch (Exception ex)
{
return 0;
}
выше код всегда возвращает 1, но пакетный файл никогда не работать (он должен сделать текстовый файл манипуляции на сервере).
Я попытался:
- удалить UseShellExecute
- добавьте следующее в файл: web.config
<authentication mode="Forms" />
<identity impersonate="true" userName="administrator" password="1234" />
-Edit анонимной проверки подлинности для веб-приложения для конкретного пользователя (с правами администратора)
однако, ни одно из вышеизложенного не работало.
Кроме того, есть ли способ проверить, является ли это проблемой разрешения? Я попробовал поиск в средстве просмотра событий, но подошел пустой.
EDIT: Не знаю, помогает ли это, но при попытке запустить процесс с сервера (Start => run ...) я получаю предупреждение The publisher could not be verified
перед его запуском.
Может это помочь вам http://stackoverflow.com/questions/4189800/c-sharp-code-to-run-a-batch-file-works-in-console-application-but-same -код-doe? –
@Edward спасибо за ваш ответ, но это не помогло. – Yoav
В несвязанной заметке 'Process' реализует' IDisposable', что в простейших терминах означает, что вы должны обернуть его создание и использование в блоке 'using'. –