Мне нужно выполнить скрипт powershell из моего веб-приложения asp.net MVC. Мое требование - динамически создавать семейства сайтов. У меня есть сценарий для него, и он работает отлично. Нет аргументов, которые нужно передать скрипту. Код, который я использую был показан ниже:Выполнение сценария PowerShell с веб-приложения C# MVC
RunspaceConfiguration runspaceConfiguration = RunspaceConfiguration.Create();
Runspace runspace = RunspaceFactory.CreateRunspace(runspaceConfiguration);
runspace.Open();
RunspaceInvoke scriptInvoker = new RunspaceInvoke(runspace);
Pipeline pipeline = runspace.CreatePipeline();
//Here's how you add a new script with arguments
Command myCommand = new Command(scriptfiellocation);
pipeline.Commands.Add(myCommand);
pipeline.Commands.Add("Out-String");
// Execute PowerShell script
var result = pipeline.Invoke();
На выполнении кода, когда я проверяю счетчик переменного результата дает отсчет как 1. Однако на проверку моего сайта, нет семейства сайтов который был создан. Я не могу определить, где я ошибаюсь, поскольку нет ошибки времени выполнения, и команда Invoke также работает нормально.
Может ли кто-нибудь сказать мне, где я, возможно, собираюсь сбежать? Учитывая, что сценарий PowerShell отлично работает при работе с оболочкой управления.
Может быть проблемой с разрешениями. Имеет ли учетная запись, на которой работает сайт, необходимые разрешения? Проверьте состояние трубопровода после операции Invoke. – stuartd
Состояние трубопровода отображается как «Завершено» после завершения операции. И да, учетная запись также имеет необходимые разрешения. Любая идея о том, что еще может вызвать проблему? – Granal