【发布时间】:2014-08-15 08:46:56
【问题描述】:
我在服务器上抛出 FaultException
有什么想法可能遗漏或错误吗?
我的服务合同:
[ServiceContract]
public interface IServicoLoja
{
[OperationContract]
[FaultContract(typeof(RetornoErro))]
Retorno<Guid> AdicionarOuAlterar(Loja req);
}
实现:
[ServiceBehavior]
public class ServicoLoja : IServicoLoja
{
public Retorno<Guid> AdicionarOuAlterar(Modelo.Loja req)
{
try
{
......
}
catch (Exception ex)
{
var ret = new RetornoErro(ex);
throw new FaultException<RetornoErro>(ret, ex.Message);
}
.....
}
}
服务代理:
public class ServicoLojaClient : ClientBase<IServicoLoja>, IServicoLoja
{
public Retorno<Guid> AdicionarOuAlterar(Loja req)
{
return Channel.AdicionarOuAlterar(req);
}
}
在客户端:
try
{
...
}
catch (FaultException<RetornoErro> ex)
{
//this is not reached
}
catch(FaultException ex)
{
//this is reached
}
服务合同位于客户端引用的单独程序集上。还引用了包含“RetornoErro”的程序集。
谢谢。
【问题讨论】: