如何解决返回WCF自定义故障异常
| 我有点麻烦从wcf服务返回自定义错误异常。与wcf服务通信的客户端应用程序将收到–合同不匹配错误。 这是我在服务中定义的故障合同:public partial class Fault
{
string codeField;
string messageField;
string detailsField;
}
在服务中出现错误时,我正在创建自定义故障异常,如下所示:
public void ProvideFault(Exception exception,MessageVersion version,ref Message refMessage)
{
mynamespace.Fault customFault = new mynamespace.Fault()
{
code = \"Service Error\",message = \"Error Message\",details = \"Error Message\"
};
FaultException<mynamespace.Fault> faultexception = new FaultException<mynamespace.Fault>( customFault );
MessageFault messageFault = faultexception.CreateMessageFault();
refMessage = Message.CreateMessage( version,messageFault,faultNamespace );
}
此代码导致客户端中的合同不匹配错误。谁能帮我找出问题所在吗?
解决方法
指定您需要返回的故障类型(例如,创建UserMismatchFault类),然后将其抛出,如下所示:
throw new FaultException<UserMismatchFault>(myFault);
,创建自定义故障合同的步骤
http://bloggingabout.net/blogs/jpsmit/archive/2007/03/21/wcf-fault-contracts.aspx
,faultNamespace
是什么? CreateMessage
的第三个参数应该是动作(faultException.Action
)。同样不要忘记,您的Fault
类必须是有效的DataContract
-在默认序列化成员必须为be8ѭ的情况下。
,希望Code Project上的这个例子可以为您
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。