fix: resolve Exchange runspace and PowerShell invoke API mismatches
This commit is contained in:
@@ -62,11 +62,8 @@ namespace C4IT.LIAM
|
||||
var runspace = RunspaceFactory.CreateRunspace(connectionInfo);
|
||||
LogEntry($"Opening Exchange runspace (timeout: {RunspaceOpenTimeout.TotalSeconds:0}s) for endpoint '{_exchangeUri}'", LogLevels.Debug);
|
||||
|
||||
IAsyncResult openResult = null;
|
||||
try
|
||||
{
|
||||
openResult = runspace.BeginOpen(null, null);
|
||||
if (!openResult.AsyncWaitHandle.WaitOne(RunspaceOpenTimeout))
|
||||
var openTask = Task.Run(() => runspace.Open());
|
||||
if (!openTask.Wait(RunspaceOpenTimeout))
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -81,12 +78,7 @@ namespace C4IT.LIAM
|
||||
$"Timeout while opening Exchange runspace after {RunspaceOpenTimeout.TotalSeconds:0} seconds.");
|
||||
}
|
||||
|
||||
runspace.EndOpen(openResult);
|
||||
}
|
||||
finally
|
||||
{
|
||||
openResult?.AsyncWaitHandle?.Close();
|
||||
}
|
||||
openTask.GetAwaiter().GetResult();
|
||||
|
||||
LogEntry("Exchange runspace opened successfully", LogLevels.Debug);
|
||||
return runspace;
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace C4IT.LIAM
|
||||
{
|
||||
private static readonly TimeSpan PowerShellInvokeTimeout = TimeSpan.FromSeconds(120);
|
||||
|
||||
private static Collection<PSObject> InvokePowerShellWithTimeout(PowerShell ps, TimeSpan timeout, string operationName)
|
||||
private static PSDataCollection<PSObject> InvokePowerShellWithTimeout(PowerShell ps, TimeSpan timeout, string operationName)
|
||||
{
|
||||
IAsyncResult asyncResult = null;
|
||||
try
|
||||
|
||||
Reference in New Issue
Block a user