我正在使用 C# 服务在远程机器上执行 Powershell 命令并显示结果。我正在使用 C# 库 System.Management.Automation.Runspaces 在远程系统上执行命令。
在其中一台服务器上,创建运行空间时发生了 TypeInitializationException 并且服务崩溃了。
WSManConnectionInfo connectionInfo = new WSManConnectionInfo(new Uri("http://" + server + "/powershell"), strShellUri, cred);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos;
runspace = RunspaceFactory.CreateRunspace(connectionInfo);
即使我们在 try-catch 块中捕获了异常,服务也会崩溃。在谷歌搜索时,异常是由内部异常触发的。
InnerException: System.EntryPointNotFoundException
Message=无法在 DLL 'WsmSvc.dll' 中找到名为 'WSManInitialize' 的入口点。StackTrace:位于 System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager 的 System.Management.Automation.Remoting.Client.WSManNativeApi.WSManInitialize(Int32 标志,IntPtr& wsManAPIHandle)。WSManAPIStaticData..ctor() 在 System.Management.Automation.Remoting.Client.WSManClientSessionTransportManager ..cctor()
我该如何解决内部异常问题。