调用方法时出现空异常

时间:2012-10-02 15:44:01

标签: c# .net exception iis soap

我有以下代码:

public class A: IContract, ...
{
    private B b = new B(); 
    // contract method
    public string MethodA(string p1, string p2)
    {
        Log("Start");
        SomeObject obj = CreateObj(p1, p2);
        Log("Before Send");
        string result = b.SendToExternalSth(obj);
        // do sth
        return result;
    }
}

public class B
{
    public string SendToExternalSth(SomeObject obj)
    {
        Log("BEGIN");
        string a, b;
        a = proxy.Send(obj);
        // do sth
        Log("End");
        return a;
    }
}

执行Before Send行后,我得到System.Exception空消息,而异常的堆栈跟踪指向}方法的SendToExternalSth行。

你有什么想法为什么会这样吗? 我应该提到:

  • 仅在生产环境中发生(在本地和测试环境中工作),
  • 代码位于c# - .net 4.0,
  • 此代码是soap Web服务代码的一部分(MethodA是一个soap动作,SendToExternalSth方法是其他类的内部方法),在IIS 7.0下托管,
  • 我正在使用'任何cpu'选项,
  • 我正在部署生产环境Debug版本
  • 生产和测试环境都是64位windows 2008 r2 sp1,
  • .net 4框架在两者上都安装了相同的版本,
  • 生产服务器上缺少Microsoft .NET Framework 4多目标打包组件,与测试环境相比,但目前我无法在那里安装。

请告诉我如果需要更多信息来解决这个问题,我会很乐意为您提供。

1 个答案:

答案 0 :(得分:0)

我已经多次编写了一些调试代码并更改了编译选项。下次部署到生产后,没有发生此错误。我认为这是与Any CPU选项相关的一些编译问题,但这只是猜测。