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