我在 Intranet 上有一个 asp.net mvc 网站。对站点的访问由活动目录中的组确定。有 4 个不同的组,每个组在站点中具有不同的访问权限。我偶尔会遇到网站运行缓慢的问题。该站点将运行好几天,然后突然缓慢爬行。我有一个测试站点和一个生产站点。当减速发生时,两个站点都会受到同样的影响。我还有一个站点,该站点测试没有活动目录访问权限的站点,并且在这两个站点爬行时运行没有问题。我遇到问题的网站是在用户帐户下运行的,因为应用程序必须访问 Intranet 上的另一个共享才能打印和合并 pdf 文件。这些站点在同一个应用程序池下运行。当问题出现时,即使没有数据库活动的页面,所有页面都同样慢。当问题发生时,我重置 IIS,重新启动网站,并回收线程。唯一真正解决问题的是重新启动服务器。有时需要重新启动才能使站点恢复正常。这是我尝试过的一些事情。似乎问题发生的频率较低,但仍然会发生。1.减少我查询活动目录的次数。2. 出现问题时重置IIS。这一直没有帮助。3. 回收应用程序池。4. 重新启动 sql server 服务 5. 确保在引用服务器时使用完全限定名称。这似乎减少了一些问题。不过不确定。我在 64 位 Windows 2008 服务器上使用 IIS 7。并回收线程。唯一真正解决问题的是重新启动服务器。有时需要重新启动才能使站点恢复正常。这是我尝试过的一些事情。似乎问题发生的频率较低,但仍然会发生。1.减少我查询活动目录的次数。2. 出现问题时重置IIS。这一直没有帮助。3. 回收应用程序池。4. 重新启动 sql server 服务 5. 确保在引用服务器时使用完全限定名称。这似乎减少了一些问题。不过不确定。我在 64 位 Windows 2008 服务器上使用 IIS 7。并回收线程。唯一真正解决问题的是重新启动服务器。有时需要重新启动才能使站点恢复正常。这是我尝试过的一些事情。似乎问题发生的频率较低,但仍然会发生。1.减少我查询活动目录的次数。2. 出现问题时重置IIS。这一直没有帮助。3. 回收应用程序池。4. 重新启动 sql server 服务 5. 确保在引用服务器时使用完全限定名称。这似乎减少了一些问题。不过不确定。我在 64 位 Windows 2008 服务器上使用 IIS 7。似乎问题发生的频率较低,但仍然会发生。1.减少我查询活动目录的次数。2. 出现问题时重置IIS。这一直没有帮助。3. 回收应用程序池。4. 重新启动 sql server 服务 5. 确保在引用服务器时使用完全限定名称。这似乎减少了一些问题。不过不确定。我在 64 位 Windows 2008 服务器上使用 IIS 7。似乎问题发生的频率较低,但仍然会发生。1.减少我查询活动目录的次数。2. 出现问题时重置IIS。这一直没有帮助。3. 回收应用程序池。4. 重新启动 sql server 服务 5. 确保在引用服务器时使用完全限定名称。这似乎减少了一些问题。不过不确定。我在 64 位 Windows 2008 服务器上使用 IIS 7。
user = ConfigurationManager.AppSettings["TravelCardUser.AD_GroupName"];
approver = ConfigurationManager.AppSettings["TravelCardApprover.AD_GroupName"];
maintenance = ConfigurationManager.AppSettings["TravelCardMaintenance.AD_GroupName"];
admin = ConfigurationManager.AppSettings["TravelCardAdmin.AD_GroupName"];
testuser = ConfigurationManager.AppSettings["TestUser"];
List<string> adgroups = new List<string>();
adgroups.Add(admin);
adgroups.Add(approver);
adgroups.Add(maintenance);
adgroups.Add(user);
this.groups = adgroups;
List<string> groupmembership = new List<string>();
foreach (var group in groups)
{
if (!String.IsNullOrEmpty(testuser))
{
this.username = testuser;
}
else
{
this.username = currentloggedinuser;
}
using (var ctx = new PrincipalContext(ContextType.Domain))
using (var groupPrincipal = GroupPrincipal.FindByIdentity(ctx, group))
using (var userPrincipal = UserPrincipal.FindByIdentity(ctx, username))
{
if (groupPrincipal != null)
{
try
{
if (userPrincipal.IsMemberOf(groupPrincipal))
{
groupmembership.Add(group);
}
}
catch (Exception ex)
{
string theexception = ex.ToString();
}
}
}
}
这是我的 ldap 连接字符串。
<add name="ADConnectionString_UserRole" connectionString="LDAP://locationX/cn=TravelCardUser,ou=LocationXgroupsGroups,dc=acme,dc=us,dc=com" />