C# 在WCF中使用静态类

C# 在WCF中使用静态类,c#,wcf,static,C#,Wcf,Static,当我运行服务时,我得到了错误信息 服务器堆栈跟踪:en System.ServiceModel.Channels.ServiceChannel.ThrowiffaultUnderstanding(消息 回复,MessageFault故障,字符串操作,MessageVersion版本, 故障转换器故障转换器 System.ServiceModel.Channel.ServiceChannel.HandlerReply(ProxyOperationRuntime 操作、代理rpc和rpc)en Sy

当我运行服务时,我得到了错误信息

服务器堆栈跟踪:en System.ServiceModel.Channels.ServiceChannel.ThrowiffaultUnderstanding(消息 回复,MessageFault故障,字符串操作,MessageVersion版本, 故障转换器故障转换器 System.ServiceModel.Channel.ServiceChannel.HandlerReply(ProxyOperationRuntime 操作、代理rpc和rpc)en System.ServiceModel.Channel.ServiceChannel.Call(字符串操作, 布尔单向,ProxyOperationRuntime操作,对象[]ins, 对象[]输出,时间跨度超时)en System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 方法调用,ProxyOperationRuntime操作)en System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage (信息)

在[0]处重试异常:en System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)en System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32型)en IUsuariosOPContract.GetUsuarioByUserName或邮件(字符串数据)en UsuariosOPContractClient.GetUsuarioByUserName或邮件(字符串数据)


请给我一个主意。另一种打电话给静态Usariosbo的方式
//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);

}