我将 DotNetOpenAuth 与 Mono 2.10 结合使用。当 context.Application.Unlock() 被调用时,会抛出一个异常,表明从一开始就没有获得锁。我已经修改了代码,如下所示。
我的问题是,代码是否具有相同的目的,Apache 下的 mono 是否甚至支持以这种方式锁定?
原来的
context.Application.Lock();
try
{
if ((store = (IRelyingPartyApplicationStore)context.Application[ApplicationStoreKey]) == null)
{
context.Application[ApplicationStoreKey] = store = new StandardRelyingPartyApplicationStore();
}
}
finally
{
context.Application.UnLock();
}
我的修改
lock (app)
{
try
{
if ((store = (IRelyingPartyApplicationStore)context.Application[ApplicationStoreKey]) == null)
{
context.Application[ApplicationStoreKey] = store = new StandardRelyingPartyApplicationStore();
}
}
finally
{
//context.Application.UnLock();
}
}