我想構建一個ASP.Net,c#應用程序,通過Web界面爲分佈式管理組公開一些與IIS管理相關的活動。Powershell調用方法既不拋出異常也不返回結果
我正在使用System.Management.Automation V3.0庫來打包power shell命令。作爲第一步,我希望通過調用Get-WebApplication命令來列出當前在本地IIS上運行的所有Web應用程序。 這是我面臨的問題。方法調用既不會拋出任何異常,也不會返回結果。有誰知道這個問題的根源?請分享您使用System.Management.Automation.dll構建此類界面的經驗。
var shell = PowerShell.Create();
shell.Commands.AddScript("Get-WebApplication | Out-String");
try
{
var results = shell.Invoke();
if (results.Count > 0)
{
var builder = new StringBuilder();
foreach (var psObject in results)
{
builder.Append(psObject.BaseObject.ToString() + "\r\n");
}
}
}
catch(Exception ex)
{
throw;
}
PS:獲取服務到位的獲取,WebApplication的工作原理是在機器上返回的服務列表提供精絕。
空結果可能是有效的結果。那麼,你有沒有在本地服務器上的任何Web應用程序?並做了你的檢查內容的'shell.Streams.Error'? – PetSerAl
是的,本地服務器上的應用程序很少。感謝您指向Streams.Error屬性。發現以下異常消息**檢索具有CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6}的組件的COM類工廠失敗,原因如下:80040154類未註冊(異常來自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))。 ** –
此cmdlet是否在PowerShell控制檯中工作? x32 **和** x64? – PetSerAl