我正在调用返回List的WCF回调服务。实际上,当我点击登录按钮时,我正在检查用户名和密码。如果正确,该方法将获取List并将其返回给客户端。
现在,如果我输入错误的用户名或密码错误,则会显示“无效的用户名/密码”消息。但是,当我尝试再次提供凭据时,它会冻结。它不会再次调用该方法。
我不知道问题出在哪里。我也启用了跟踪,但是第二次没有调用方法,因此跟踪文件中没有任何内容。
感谢您的帮助。
我正在调用这样的服务:
InstanceContext context = new InstanceContext(this);
LoginClient client = new LoginClient(context);
List<UserEN> result = client.Login(userLogin, ref message).ToList<UserEN>();
我的服务合同:
[ServiceContract(CallbackContract = typeof(ISaadiqinCallback))]
public interface ILogin
{
[OperationContract]
List<UserEN> Login(UserEN _user, ref string message);
}
[ServiceContract]
public interface ISaadiqinCallback
{
[OperationContract]
void BroadcastToClient(List<UserEN> authorizationList);
[OperationContract]
void NotifyUser(string message);
}
实现:
public List<UserEN> Login(UserEN _user, ref string message)
{
List<UserEN> authorizationList = new List<UserEN>();
if (!string.IsNullOrEmpty(_user._userName))
{
try
{
// string message = string.Empty;
lock (locker)
{
callback = OperationContext.Current.GetCallbackChannel<ISaadiqinCallback>();
//remove the old client
if (clients.Keys.Contains(_user._userName))
clients.Remove(_user._userName);
//Adding the clients with userName and callback channel
clients.Add(_user._userName, callback);
//Get the authorization list from database
authorizationList = new LoginBal().Login(_user, ref message);
}
}
catch (Exception)
{
throw;
}
}
return authorizationList;
}