我在使用 InvokeMember 时遇到问题。
首先,我的环境是这样的:一个 C# ASP.NET 5 MVC WEB 应用程序,它调用一个 COM32 DLL 中包含的方法,服务器是本地运行的 IIS Express。
您在下面看到的代码块位于标有 [HttpPost] 的 IActionResult 方法中。
一切正常,但是当多个用户在使用站点时调用此方法时,进程会混淆并且应用程序崩溃。
错误: System.Reflection.TargetInvocationException:“调用目标引发了异常。” NullReferenceException:试图读取或写入受保护的内存。这通常表明其他内存是坏的。
您可以在下面看到发生的错误。
谁能帮我解决这个问题?
try
{
string valueAddPath = @"C:\gcf\exe\;";
string[] paths = new string[] { "PATH", "COBPATH" };
foreach (var path in paths)
{
string newValuePath = valueAddPath + Environment.GetEnvironmentVariable(path);
System.Environment.SetEnvironmentVariable(path, newValuePath);
}
typeObject = Type.GetTypeFromProgID("GCF.ExemploCallerCobol.ManagerCaller");
instanceCOM = Activator.CreateInstance(typeObject);
string resultado = (string)typeObject.InvokeMember("GetConsulta", System.Reflection.BindingFlags.InvokeMethod, null, instanceCOM, new object[] { "PRODUTO" });
}
错误