0

イントラネットに asp.net mvc Web サイトがあります。サイトへのアクセスは、Active Directory 内のグループによって決定されます。サイトにはそれぞれ異なるアクセス権を持つ 4 つの異なるグループがあります。サイトの実行速度が遅いという問題が時々発生しています。サイトは数日間正常に動作しますが、突然低速になります。テスト サイトと本番サイトの両方があります。速度低下が発生すると、両方のサイトが等しく影響を受けます。Active Directory にアクセスできないサイトをテストするサイトもあり、これら 2 つのサイトがクロールしている間は問題なく実行されます。私が問題を抱えているサイトは、アプリケーションが PDF ファイルを印刷および結合するためにイントラネット上の別の共有にアクセスする必要があるため、ユーザー アカウントで実行されています。サイトは同じアプリケーション プールで実行されています。問題が発生すると、データベース アクティビティのないページであっても、すべてのページが同じように遅くなります。問題が発生すると、IIS をリセットし、Web サイトを再起動して、スレッドをリサイクルします。問題を実際に解決する唯一の方法は、サーバーを再起動することです。サイトを正常に戻すには、追加の再起動が必要になる場合があります。ここに私が試したいくつかのことがあります。問題が発生する頻度は減ったようですが、まだ発生しています。1. Active Directory を照会する回数を減らします。2. 問題が発生したら、IIS をリセットします。これは役に立ちませんでした。3. アプリケーション プールをリサイクルします。4. SQL Server サービスを再起動します。 5. サーバーを参照するときに完全修飾名が使用されていることを確認します。これにより、問題がいくらか軽減されたようです。よくわかりません。Windows 2008 サーバー、64 ビットで IIS 7 を使用しています。スレッドをリサイクルします。問題を実際に解決する唯一の方法は、サーバーを再起動することです。サイトを正常に戻すには、追加の再起動が必要になる場合があります。ここに私が試したいくつかのことがあります。問題が発生する頻度は減ったようですが、まだ発生しています。1. Active Directory を照会する回数を減らします。2. 問題が発生したら、IIS をリセットします。これは役に立ちませんでした。3. アプリケーション プールをリサイクルします。4. SQL Server サービスを再起動します。 5. サーバーを参照するときに完全修飾名が使用されていることを確認します。これにより、問題がいくらか軽減されたようです。よくわかりません。Windows 2008 サーバー、64 ビットで IIS 7 を使用しています。スレッドをリサイクルします。問題を実際に解決する唯一の方法は、サーバーを再起動することです。サイトを正常に戻すには、追加の再起動が必要になる場合があります。ここに私が試したいくつかのことがあります。問題が発生する頻度は減ったようですが、まだ発生しています。1. Active Directory を照会する回数を減らします。2. 問題が発生したら、IIS をリセットします。これは役に立ちませんでした。3. アプリケーション プールをリサイクルします。4. SQL Server サービスを再起動します。 5. サーバーを参照するときに完全修飾名が使用されていることを確認します。これにより、問題がいくらか軽減されたようです。よくわかりません。Windows 2008 サーバー、64 ビットで IIS 7 を使用しています。問題が発生する頻度は減ったようですが、まだ発生しています。1. Active Directory を照会する回数を減らします。2. 問題が発生したら、IIS をリセットします。これは役に立ちませんでした。3. アプリケーション プールをリサイクルします。4. SQL Server サービスを再起動します。 5. サーバーを参照するときに完全修飾名が使用されていることを確認します。これにより、問題がいくらか軽減されたようです。よくわかりません。Windows 2008 サーバー、64 ビットで IIS 7 を使用しています。問題が発生する頻度は減ったようですが、まだ発生しています。1. Active Directory を照会する回数を減らします。2. 問題が発生したら、IIS をリセットします。これは役に立ちませんでした。3. アプリケーション プールをリサイクルします。4. SQL Server サービスを再起動します。 5. サーバーを参照するときに完全修飾名が使用されていることを確認します。これにより、問題がいくらか軽減されたようです。よくわかりません。Windows 2008 サーバー、64 ビットで 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

Sequal サーバーと Team Foundation サーバーに関連するプロセスがリソースを取得していますが、解放していません。ちなみに、Red Gate Memory Profiler で asp.net コードを実行しましたが、メモリ リークはありません。ここで、メモリ使用量の問題をどうするかを考えなければなりません。

于 2011-11-04T21:34:03.897 に答える