WCF 代理出错,但未引发异常

本文关键字:异常 代理 出错 WCF | 更新日期: 2023-09-27 17:56:37

我有一个访问服务以执行两次调用的方法。下面是(简化的)客户端代码:

try
{
    using (var client = new IntegrationServiceClient())
    {
        int taskID = client.CreateTask(param, taskType, taskDate);
        if (taskID < 0)
        {
            //There was some error
            return -1;
        }
        if (!client.ExecuteTask(taskID, taskType))
        {
            //There was some error
        }
    }
}
catch (Exception ex)
{
    LogManager.Log("Error while creating and executing task", ex);
}

我仅在第二次通话时收到CommunicationObjectFaultedException异常。这怎么可能?如果有某种故障,我不应该在第一次调用后得到FaultException(或其他异常)吗?除了异常之外,是否有其他原因可能导致代理进入错误状态?

WCF 代理出错,但未引发异常

似乎有一个错误的web.config文件。堆栈跟踪告诉我,第二次调用时出现错误,因为这是 using 语句中最后一个有意义的行,之后代理被释放。仅在释放代理时引发CommunicationObjectFaultedException

正是代码的编写方式导致堆栈跟踪看起来像在调用第二个方法时抛出异常。