0

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

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在第一次通话后得到一个(或其他一些例外)吗?除了异常之外,还有什么东西会导致代理进入故障状态吗?

4

1 回答 1

0

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

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

于 2013-01-29T22:35:18.823 回答