private static object objLock= new object();
if (Monitor.TryEnter(objLock))
{
try
{
//执行具体的事务
}
catch (Exception ex)
{
return Error( ex.Message);
}
finally
{
Monitor.Exit(objLock);
}
}else {
return Error("业务繁忙,请重新尝试。");
}
1、objLock对象一直在,一直返回"业务繁忙,请重新尝试。",只有重启IIS才会释放对象
2、负载均衡的情况下,是否适用
在负载均衡转发多台服务器的情况下不适用,建议使用分布式锁,比如基于 redis 的分布式锁 RedLock,.net 客户端可以用 RedLock.net https://github.com/samcook/RedLock.net
可以直接改成数据库锁来解决么,不使用redis的分布式锁的话