从.NET3.5迁移到.NET4.0后出错

时间:2010-07-15 08:18:16

标签: wcf exception .net-4.0 fault

我将测试声明为:

    [Test]
    [ExpectedException(typeof(FaultException<ArgumentException>))]
    public void ShouldNotBeAbleToDeleteASystemList()

当我在VS2008中以.net 3.5为目标运行时,一切正常,测试在抛出异常时通过。

我已将解决方案迁移到VS2010并将目标框架更改为4.0,现在测试失败并显示以下详细信息:

  

System.ServiceModel.FaultException`1 [[System.ArgumentException,   mscorlib,版本= 4.0.0.0,   文化=中性,   PublicKeyToken = b77a5c561934e089]]   预期

当我将实际消息写入控制台时,它是:

  

System.ServiceModel.FaultException`1 [System.ArgumentException]:   这是一个系统列表,不能   删除(故障细节等于   System.ArgumentException:值   不在预期的范围内。)。

我已检查并且所有项目都定位于.net 4.0。

出了什么问题?

1 个答案:

答案 0 :(得分:1)

对于任何可能遭遇此类问题的人。出现此错误的原因是异常是由针对.net 2.0框架编译的第三方组件抛出的,抛出的异常是.net 2.0类。我的代码并没有把它解释为同一个类。解决方案是更改第三方组件的配置,以将<supportedRuntime ... />行添加到<startup>部分。