最近,我们系统中的两个用户在尝试将其添加到角色时开始出现此错误。
System.Runtime.InteropServices.COMException:当该文件已存在时,无法创建文件。 (HRESULT异常:0x800700B7)
有趣的是,无论配置如何都会发生相同的错误,本地运行我们使用XML存储,而在测试环境中它使用SQL Server。
以下是代码爆炸的地方 - AddMemberName()
- 正如你所看到的那样,这是非常简单的东西,并且它运作良好一段时间,突然间只是这两个用户
public void AddUserToRole(string roleName, string userName, bool upn)
{
string uName = userName;
if (upn)
uName = getAltUserNames(userName).First();
AzAuthorizationStore store = new AzAuthorizationStoreClass();
store.Initialize(2, _provider.StoreLocation, null);
IAzApplication app = store.OpenApplication(_provider.ApplicationName, null);
IAzRole role = app.OpenRole(roleName, null);
role.AddMemberName(uName, null);
role.Submit(0, null);
Marshal.FinalReleaseComObject(role);
}
我尝试使用Google搜索各种不同的术语,但无法找到有关此内容的任何内容。我确实读过this post,但似乎不是问题。
由于
答案 0 :(得分:1)
特别检查Active Directory用户名和基础OU名称。检查重复和不匹配。 一旦用户结婚并且她的名字改变了,我就遇到了一个问题。