0

我在使用 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" });
}

错误
错误

4

0 回答 0