我有MVC Web应用程序控制器来连接具有以下代码的交换服务器Powershell:
enter connectionInfo = new WSManConnectionInfo(new Uri(ConfigurationManager.AppSettings.Get ("WSManConnectionInfo").ToString()), "http://schemas.microsoft.com/powershell/Microsoft.Exchange", newCred);
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos;
string rspace = "space is OK";
try
{
//--create remote runspace
runspace = RunspaceFactory.CreateRunspace(connectionInfo);
} catch (Exception ex2)
{
rspace = ex2.Message.ToString();
}
ViewBag.rspace = rspace; //show the above error message on client side view
上面的代码在我的本地机器上工作正常,但是发布到生产服务器后出现上述错误,请注意,我可以看到"Microsoft.Management.Infrustructure.dll"存在于生产服务器的bin文件夹中。
请告知如何修复此错误,非常感谢,
编辑:我什至尝试添加这 3 行代码,但相同的错误;
connectionInfo.SkipCACheck = true;
connectionInfo.SkipCNCheck = true;
连接信息最大连接重定向计数 = 4;在这里编码
编辑:System.Management.Automation.dll也添加到引用文件夹中
似乎问题已经解决,我认为是由System.Management.Automation安装引起的,这就是我所做的:
1.首先确保将系统.管理.自动化.dll添加到 C:\windows\assembly\GAC_MSIL\System.Management.Automation\1.0.0.0__31bf3856ad364e35\System.Management.Automation.dll 的"引用"文件夹中,此 dll 文件在那里,但它仍然导致错误,
2.转到管理 Nuget 包并从那里安装 System.Management.Automation,虽然它们具有相同的名称,但我认为此文件与第一步添加的 System.Management.Automation.dll 不同。 但是安装此文件后,问题就消失了。C# 代码没有任何变化,