我们的ASP.NET web应用程序使用授权管理器。在该web应用程序的页面上,作为服务器上的本地XML文件的授权存储被多次访问以执行访问检查。我们的一些客户访问此页面时会收到System.IO.FileLoadException
。这是间歇性的。
堆栈跟踪:
System.Web.HttpUnhandledException:类型为的异常引发了"System.Web.HttpUnhandledException"。--->System.IO.FileLoadException:进程无法访问该文件因为它正被另一个进程使用(来自的异常HRESULT:0x80070020)Microsoft.Interop.Security.AzRoles.AzAuthorizationStoreClass.Initialize(Int32lFlags,字符串bstrPolicyURL,Object varReserved)
进程监视器显示共享违规。我一直在寻找解决方案,但找不到。客户端位于Windows Server 2003 SP2上。所以这个修补程序http://support.microsoft.com/kb/919754似乎不适用,因为它是Windows Server 2003 SP2的一部分。
访问授权存储的代码如下:
private IAzApplication2 AzmanApplication
{
get
{
AzAuthorizationStoreClass store = new AzAuthorizationStoreClass();
store.Initialize(0, _connectionString, null);
return store.OpenApplication2(_applicationName, null);
}
}
有人知道我该怎么解决这个问题吗?
这意味着文件(可能是AzMan的XML文件)在另一个应用程序中打开。确保azman.mmc没有运行,并打开此存储进行编辑/审查等。