//that access to layer dataaccess. this uses another webapp
public class UsuariosService: IUsuariosService
{
IUsuarioRepository _repoUsuarios;
public UsuariosService(IUsuarioRepository repoUsuarios)
{
_repoUsuarios = repoUsuarios;
}
public UsuariosModel GetUsuarioByUsernameOrEmail(string data)
{
var usuario = new UsuariosModel();
try
{
var usr = _repoUsuarios.GetFiltered(x => x.Login.Trim().Equals(data.Trim(),StringComparison.OrdinalIgnoreCase)||x.Email.Trim().Equals(data.Trim(),StringComparison.OrdinalIgnoreCase)).SingleOrDefault();
if (usr == null)
{
return null;
}
else
{
usuario.Intentos = usr.Intentos;
usuario.Email = usr.Email;
usuario.Login = usr.Login;
usuario.Nombre = usr.Nombre;
}
}
catch (Exception ex)
{
}
return usuario;
}
}
//this is my bussiness layer for WCf
public class UsuariosBO
{
private static IUsuariosService _usuariosService;
private UsuariosBO(IUsuariosService usuariosService)
{
_usuariosService = usuariosService;
}
public static UsuariosModel GetUsuarioByUsernameOrEmail(string data)
{
UsuariosModel usuario = new UsuariosModel();
try
{
usuario = _usuariosService.GetUsuarioByUsernameOrEmail(data);
}
catch (Exception ex)
{
}
return usuario;
}
}
//this is my contract layer
public class UsuariosOPContract : IUsuariosOPContract
{
public UsuarioContract GetUsuarioByUsernameOrEmail(string data)
{
UsuarioContract usuario = new UsuarioContract();
try
{
UsuariosModel usr = UsuariosBO.GetUsuarioByUsernameOrEmail(data);
usuario.Nombre = usr.Nombre;
return usuario;
}
catch (Exception ex)
{
}
}
}
[ServiceContract]
public interface IUsuariosOPContract
{
[OperationContract]
string GetUsuarioByUsernameOrEmail(string data);
}
当我运行该服务时,我收到错误
服务器堆栈跟踪:en System.ServiceModel.Channels.ServiceChannel.ThrowIfFaultUnderstood(消息 回复,MessageFault错误,字符串操作,MessageVersion版本, FaultConverter faultConverter)en System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc)en System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway,ProxyOperationRuntime操作,Object [] ins, 对象[]出局,TimeSpan超时)en System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall,ProxyOperationRuntime operation)en System.ServiceModel.Channels.ServiceChannelProxy.Invoke(即时聊天 消息)
在[0]处重新抛出异常:en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(即时聊天 reqMsg,IMessage retMsg)en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&安培; msgData,Int32 type)en IUsuariosOPContract.GetUsuarioByUsernameOrEmail(String data)en UsuariosOPContractClient.GetUsuarioByUsernameOrEmail(String data)