0

我在 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" />
4

1 回答 1

0

服务器每 3 或 4 天就会变慢一次,所以我关闭了我的应用程序的应用程序池,并使用 Sysinternals 监控进程 3 天。

http://technet.microsoft.com/en-us/sysinternals/bb896653

我看到与同步服务器和团队基础服务器相关的进程正在获取资源但没有释放它们。顺便说一句,我通过 Red Gate Memory Profiler 运行了我的 asp.net 代码,并且没有内存泄漏。现在我必须弄清楚如何解决内存使用问题。

于 2011-11-04T21:34:03.897 回答