gpt4 book ai didi

c# - 从 C# 运行的 PowerShell 启动/停止 IIS 应用程序池没有效果

转载 作者:行者123 更新时间:2023-11-30 17:43:04 26 4
gpt4 key购买 nike

我已经在这段小代码上停留了两天了。我有一个 C# 帮助程序类来执行 PowerShell 脚本。我基本上使用 PowerShell.Create() 初始化 PowerShell 实例,然后使用 AddScript 编写命令,然后调用 Invoke 方法同步地。

现在我正在尝试停止 Windows 服务和 IIS 应用程序池。 Windows服务停止,但对IIS应用程序池没有影响。

using (var powerShell = PowerShell.Create())
{
// PowerShell doesn't stop application pool
powerShell.AddScript("Stop-WebAppPool -Name application_name");

// But it stops windows service
powerShell.AddScript("Stop-Service service_name");

var result = powerShell.Invoke();
}

当我通过 ISE 执行这两个脚本时,它们都有效。问题是什么?我想我遗漏了有关 PowerShell 的一些信息。

最佳答案

你可以这样使用

  using (PowerShell shell = PowerShell.Create())
{
shell.AddScript(@"Import-Module WebAdministration;");
shell.AddScript(@"Stop-Website -Name 'Default Web Site';");
shell.AddScript(@"Stop-WebAppPool -Name 'DefaultAppPool';");
shell.Invoke();

if (shell.HadErrors)
{
foreach (ErrorRecord _ErrorRecord in shell.Streams.Error)
{
Console.WriteLine(_ErrorRecord.ToString());
}
}
}

关于c# - 从 C# 运行的 PowerShell 启动/停止 IIS 应用程序池没有效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31425510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com