访问Web服务时出现System.Reflection.TargetInvocationException

时间:2014-09-03 16:02:55

标签: c# asp.net visual-studio-2010 web-services code-behind

我收到此未处理的异常错误:

未处理的类型' System.Reflection.TargetInvocationException' (BackEndUtil.cs的以下代码中bool变量的第3行中发生了调用目标抛出异常)

public static bool iMigrateProcess(string inputXML, out string outputXML,object objWebClient, string webSessionID)
{
  outputXML = "";
  object[] args = new Object[] { inputXML, outputXML };
  bool bSuccess = (bool)objWebClient.GetType().InvokeMember("Process", 
    BindingFlags.Default | BindingFlags.InvokeMethod, null, objWebClient, args);
  outputXML = (string)args[1];
  return bSuccess;
}

以下是其他文件(reference.cs)的处理方法

[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://BackendWebService.domain/Process", RequestNamespace="http://BackendWebService.domain/", ResponseNamespace="http://BackendWebService.domain/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
public string Process(string inputXML) {
  object[] results = this.Invoke("Process", new object[] { inputXML });
  return ((string)(results[0]));
}

这里我使用了一个Web服务(.asmx文件)来拼接两个图像文件。这里的inputXML似乎很好,包含服务器上传图像文件的文件路径的XML。但是,代码并没有超出第3行。 这段代码不是由我做的,所以我不知道如何解决这个问题。

有两个InnerExceptions: 确保文件映像是有效的托管程序集。 确保为程序集提供了正确的文件路径。

Call Stack Image

以下是上面附带的调用堆栈中的iMigrateProcess代码。

 public static bool iMigrateProcess(cDataContainer inputDC, out cDataContainer outputDC, object objWebClient)
        {
            return iMigrateProcess(inputDC, out outputDC, objWebClient, "");
        }

        public static bool iMigrateProcess(cDataContainer inputDC, out cDataContainer outputDC, object objWebClient, string webSessionID)
        {
            outputDC = null;
            object[] args = new Object[] { inputDC, outputDC };
            bool bSuccess = (bool)objWebClient.GetType().InvokeMember("Process",
                BindingFlags.Default | BindingFlags.InvokeMethod, null, objWebClient, args);

            outputDC = (cDataContainer)args[1];

            return bSuccess;
        }

0 个答案:

没有答案