Sto creando un'applicazione che interrompe il sito Web predefinito di IIS. Ho usato uno script PowerShell per fermare il sito Web perché questo script è eseguito dal mio sito web.Recupero della classe di produzione COM per componente con CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} non riuscito
Questo è il mio script:
Import-Module C:\Windows\System32\WindowsPowerShell\v1.0\Modules\WebAdministration
Stop-Website 'Default Web Site'
my copy code
Start-Website 'Default Web Site'
E questo è il mio codice C#:
PowerShell _PowerShell = PowerShell.Create();
Runspace rs = RunspaceFactory.CreateRunspace();
rs.Open();
_PowerShell.Runspace = rs;
_PowerShell.AddScript(@"Set-ExecutionPolicy RemoteSigned -scope LocalMachine").Invoke();
_PowerShell.AddScript(@"E:\DE.TEST\Power_Shell\Scripts\StopIISDefaultSite.ps1").Invoke();
if (_PowerShell.HadErrors)
{
Collection<ErrorRecord> errors = _PowerShell.Streams.Error.ReadAll();
foreach (var item in errors)
{
Console.WriteLine(item.ToString());
}
}
Console.ReadLine();
mostra il seguente errore
Retrieving the COM class factory for component with CLSID {688EEEE5-6A7E-422F-B2E1-6AF00DC944A6} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Sto usando qualsiasi CPU. Io non sono un master in powershell :( –
lo cambio in x86, si verifica ancora errore: –
chiaramente qualcosa non è registrato su quella macchina (cioè componente COM che deve registrarsi affinché il codice venga eseguito contro di esso) –