[英]How to catch FaultExceptions from asynchronous WCF calls?
我想调用一个可以抛出FaultException的wcf服务,但是我想异步地做到这一点。 如果一切正常,则不返回任何异常,但是如果服务抛出我的FaultException之一,则在客户端中,我会收到CommunicationObjectFaultedException,并且其任何属性都不包含原始的FaultException。
从到目前为止我可以了解到的是,信息存储在其他地方 。 有人能告诉我哪儿它是什么?
例如,以下两个处理用户的注册:
internal void CallRegisterUser()
{
_service.RegisterUserAsync("username", "pass");
}
void _service_RegisterUserCompleted(object sender, RegisterUserCompletedEventArgs e)
{
if (e.Error != null) { MessageBox.Show(e.Error.Message); }
}
一个过于简化的示例,但这是您如何获取自定义故障详细信息的方法:
void client_RegisterUserCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
{
if (e.Error != null)
{
if (e.Error is FaultException<UserRegistrationFault>)
{
UserRegistrationFault fault = (e.Error as FaultException<UserRegistrationFault>).Detail;
MessageBox.Show("Error: " + fault.TheExceptionMessage);
}
else
{
MessageBox.Show("Error: " + e.Error.ToString());
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.