Можно ли вызывать Powershell из процесса ASP.Net? - PullRequest
1 голос
/ 08 сентября 2010

Есть ли проблемы с созданием пространства выполнения powershell в приложении asp.net и выполнением команд?

У меня есть базовый пример, работающий нормально, но мне интересно, есть ли какие-либо ловушки, ожидающие меня.

Мне особенно интересно:

  • Это легковесная операция или она запускает другие процессы, которые могут привести к непредсказуемому поведению.

Ответы [ 3 ]

3 голосов
/ 08 сентября 2010

Пока вы не используете явно файл powershell.exe, а вместо этого напрямую используете Runspace и Pipeline объекты, вы можете быть уверены, что он довольно легкий.Кстати, если вы пытаетесь взаимодействовать с командлетами через C #, только командлеты, полученные из PSCmdlet, нуждаются в конвейере;те, которые происходят от Cmdlet напрямую, могут быть вызваны без конвейера через метод Invoke.Это самый легкий подход.

1 голос
/ 09 сентября 2010

Как я вижу, другие рекомендуют использовать PowerShell.Ну лично я бы уделил больше внимания.Зачем?

Каждый веб-запрос должен обрабатываться максимально быстро и без каких-либо блокировок.Если в сценарии содержатся команды, работающие с сетью, возможны некоторые таймауты (например, если компьютер недоступен).Поток обработки будет заблокирован на все время и не сможет обработать любой другой веб-запрос.Вскоре вы можете получить внутреннюю ошибку сервера и аналогичные ответы.

Кроме того (я не уверен), я подозреваю, что PowerShell потребляет больше памяти, чем аналогичный код в C #.

Я не требую не используйте Powershell , просто обратите внимание ;)

1 голос
/ 08 сентября 2010

Это должно быть в порядке.Я не делал этого в ASP.NET, но я размещал в процессе с настольным приложением.Нет внешнего запуска PowerShell, если вы не используете фоновые задания.Я думаю, что квесты тоже делают что-то подобное со своей Mobile Shell .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...