C# 在.NET 4中处理FaultException是否与在.NET 4.5中处理FaultException不同?

C# 在.NET 4中处理FaultException是否与在.NET 4.5中处理FaultException不同?,c#,wcf,.net-4.0,.net-4.5,faultexception,C#,Wcf,.net 4.0,.net 4.5,Faultexception,根据.NET framework的版本,在处理WCF服务引发的FaultException时,我们的客户端会遇到不同的行为 该服务定义了一个自定义故障: [DataContract] public class MyFault { [DataMember] public int MyId { get; set; } } 服务的接口: [ServiceContract] public interface IMyService { [OperationContract]

根据.NET framework的版本,在处理WCF服务引发的FaultException时,我们的客户端会遇到不同的行为

该服务定义了一个自定义故障:

[DataContract]
public class MyFault
{
    [DataMember]
    public int MyId { get; set; }
}
服务的接口:

[ServiceContract]
public interface IMyService
{
    [OperationContract]
    [FaultContract(typeof(MyFault))]
    MyResponse DoSomething(MyRequest request);
}
客户端处理异常:

try 
{
    client.DoSomething(myrequest);
} 
catch (FaultException<MyFault> ex) 
{
    ...
}
试试看
{
客户。DoSomething(我的请求);
} 
捕获(FaultException-ex)
{
...
}
.NET 4.5机器上他将故障识别为
故障异常
,并按预期处理

但是,在.NET 4机器上他会将故障视为
故障异常
(非通用),因此永远不会达到捕获

我们捕获了机器上的流量,以查看通信是否存在差异。请求和响应都是相同的。我们甚至将.NET4机器更新为.NET4.5(没有更新任何其他软件或我们的客户端软件),行为也发生了变化


有什么合乎逻辑的解释吗?

。在我的应用程序中,它在.net 4中运行良好。显示更多代码以进行说明。我来自Microsoft.NET Framework团队。我想更好地理解这一点。你能给我们一个可以重现这个问题的示例应用程序吗?只需通过微软网站netfx45compat向我们发送电子邮件。谢谢Varun@turbophi,我无法重现此问题,我发现4.0和4.5行为看起来相同。如果你仍然能够重现这个问题,你能给Varun(之前的评论)提到的电子邮件发送一个独立的副本吗?我在四月份将这个问题提取到一个小项目中提供给公众时,无法重现这个问题。然而,今天我们在.NET4机器上尝试反序列化消息时发现了类似的行为。当相同的代码在.NET 4.5计算机上运行时,此操作失败。我们发现哪一个具有相反的行为(在4中工作,而不是在4.5中)。我们能够复制这一个,并将其发送给MS。我们认为这些问题是相关联的,因为FaultException可能以错误的方式反序列化。