Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 在WPF客户端中忽略WCF异常_.net_Wpf_Wcf_Exception Handling_Faultexception - Fatal编程技术网

.net 在WPF客户端中忽略WCF异常

.net 在WPF客户端中忽略WCF异常,.net,wpf,wcf,exception-handling,faultexception,.net,Wpf,Wcf,Exception Handling,Faultexception,我有一个托管在Windows服务中的WCF服务库。我花了一整天的时间测试了许多场景,取得了很大的成功。但是,正如应用程序现在一样,我有一个未捕获的异常问题,我的FaultException,只是被WCF服务记录,然后消失ExceptionFault是一个简单的DataContract模型,它只有三个字符串值,数据描述异常 WCF服务使用计时器每30秒调用以下方法: public int Process(bool isForced) { try { var coun

我有一个托管在Windows服务中的WCF服务库。我花了一整天的时间测试了许多场景,取得了很大的成功。但是,正如应用程序现在一样,我有一个未捕获的异常问题,我的
FaultException
,只是被WCF服务记录,然后消失
ExceptionFault
是一个简单的
DataContract
模型,它只有三个字符串值,数据描述异常

WCF服务使用计时器每30秒调用以下方法:

public int Process(bool isForced)
{
    try
    {
        var count = ProcessListings();
        return count;
    }
    catch (Exception ex)
    {
        _logger.ErrorWithCallStack("Error while processing listings. " + ex.GetType().Name + ": " + ex.Message, ex, ex.StackTrace);
        if (ex is SchedulerException)
        {
            throw new FaultException<ExceptionFault>(new ExceptionFault(ex), ex.Message);
        }
        throw;
    }
}

private static int ProcessListings()
{
    if (processCount % 3 == 0)
    {
        throw new SchedulerException("ProcessListings failed.");
    }
    return 0;
}
public int进程(bool是强制的)
{
尝试
{
var count=ProcessListings();
返回计数;
}
捕获(例外情况除外)
{
_logger.ErrorWithCallStack(“处理列表时出错。”+ex.GetType().Name+”:“+ex.Message,ex,ex.StackTrace);
如果(ex是ScheduleException)
{
抛出新的FaultException(新的ExceptionFault(ex),ex.Message);
}
投掷;
}
}
私有静态int ProcessListings()
{
如果(进程计数%3==0)
{
抛出新的ScheduleException(“ProcessListings失败”);
}
返回0;
}
客户端是WPF应用程序中的viewmodel。它有一个命令,通过调用WCF代理的
ProcessAsync
方法来覆盖计时器并强制执行
Process
。当我使用它时,客户机捕捉到
FaultException
,并正确地显示一个对话框。当服务本身执行
Process
方法(计时器的
已用事件之一)时,会抛出相同的异常(每三次),但尽管此异常不会在任何地方处理,但服务只是忽略它,并在下次计时器触发时再次处理

我知道计时器事件中的异常会被吞噬,但在这种情况下,我不知道还能做什么。我在客户端处理四个未处理的异常情况,如果我将计时器移动到windows服务中,并在那里捕获未处理的异常,在哪里发生,我如何将其传回WPF客户端