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
(或其他异常)吗?除了异常之外,是否有其他原因可能导致代理进入错误状态?
似乎有一个错误的web.config
文件。堆栈跟踪告诉我,第二次调用时出现错误,因为这是 using
语句中最后一个有意义的行,之后代理被释放。仅在释放代理时引发CommunicationObjectFaultedException
。
正是代码的编写方式导致堆栈跟踪看起来像在调用第二个方法时抛出异常。