C# 如何使用.NET 5处理FaultException

C# 如何使用.NET 5处理FaultException,c#,.net-5,C#,.net 5,我在控制器类的.net核心代码中调用了一个旧的SOAP服务,但它无法捕获任何FaultException,并且总是默认为基本异常捕获。在返回的连线跟踪中,我遗漏了一些与故障相关的重要异常细节,但无法通过抛出的基本异常直接获取这些细节。.NETCore是否支持FaultException处理?如果是,它是如何工作的?我尝试了很多选择,但就是不能让它工作,即使使用自定义异常模板类。有人能帮我理解如何使用.NET5内核来实现这一点吗?Tnx try{ resp = await

我在控制器类的.net核心代码中调用了一个旧的SOAP服务,但它无法捕获任何FaultException,并且总是默认为基本异常捕获。在返回的连线跟踪中,我遗漏了一些与故障相关的重要异常细节,但无法通过抛出的基本异常直接获取这些细节。.NETCore是否支持FaultException处理?如果是,它是如何工作的?我尝试了很多选择,但就是不能让它工作,即使使用自定义异常模板类。有人能帮我理解如何使用.NET5内核来实现这一点吗?Tnx

    try{
        resp = await _txn.Send( xml );
    }
    catch( FaultException<CException> fex )
    {
        // Never hits here
        Log.Information(fex.ToString());
    }
    catch( Exception ex )
    {
        // Always hits here, but is lacking the fault exception detail and only reports the stackTrace
        Log.Information(ex.ToString());
    }

     public class CException
    {
        String type;
        String message;
        String reason;
        String description;
        String information;
        String stackTrace;

        public CException()
        {
            message= "";
        }

        public CException(FaultException<CException> fex)
        {
            type = fex.GetType().ToString();
            reason = fex.Detail.reason;
            message = fex.Detail.message;
            description = fex.Detail.description;
            information = fex.Detail.information;
            stackTrace = fex.Detail.stackTrace;
        }
    }       
试试看{
resp=wait_txn.Send(xml);
}
捕获(故障异常fex)
{
//从来没有在这里打过球
Log.Information(fex.ToString());
}
捕获(例外情况除外)
{
//始终点击此处,但缺少故障异常详细信息,仅报告stackTrace
日志信息(例如ToString());
}
公共类异常
{
字符串类型;
字符串消息;
字符串原因;
字符串描述;
字符串信息;
字符串堆栈跟踪;
公共CException()
{
message=“”;
}
公共CException(FaultException-fex)
{
type=fex.GetType().ToString();
原因=fex.Detail.reason;
message=fex.Detail.message;
description=fex.Detail.description;
信息=fex.Detail.information;
stackTrace=fex.Detail.stackTrace;
}
}       

您是否绝对确定引发的异常是一个
故障异常
,并且引发的异常的命名空间与您捕获的异常的命名空间匹配?我非常怀疑.NET异常捕获已经改变。