1

私は現在、Webサーバーのいくつかの管理項目を自動化するアプリケーションを作成しています。私の質問は単純ですが、ドキュメントが見つかりません。ServerManagerスルーを呼び出すときにusing Microsoft.Web.Administration、サーバーオブジェクト接続が定期的に開いたり閉じたり(破棄)されたりすると、パフォーマンスが低下しますか?

SQLデータベースでは、頻繁な接続呼び出しによって多くの場合にパフォーマンスが低下する可能性があることを知っています。だから私は同じような問題に遭遇したくありません。

発信タスクがキューに入れられて実行されるような方法で 作成するInstance必要がないようにしています。Persisted

誰かが私に知らせてくれて、それに関するドキュメントを教えてくれたら、それは素晴らしいことです。しかし、私が言ったように、私は現在何も見つけることができません。

小規模な例:

public void AddSite()
{
    ServerManager defaultManager = new ServerManager();

    // Perform Task
    defaultManager.CommitChanges();
    defaultManager.Dispose();
}

public void RemoveSite()
{
    ServerManager defaultManager = new ServerManager();

    // Perform Task
    defaultManager.CommitChanges();
    defaultManager.Dispose();
}

基本的に、各メソッドに基づいてオブジェクトを構築します。それを閉じるとパフォーマンスに影響しますか?


アップデート:

この例は非常に基本的で原始的な例です。の実装など、優れたプラクティスに準拠するためのリファクタリングがいくつかありますIDisposable。ただし、主なジレンマは、SQLのように同じバリエーションを正確に表現できないことです。

過剰な開閉を伴うSQLでは、特にデータベースの複雑さが増すにつれて、すべてのサービスが徐々にパフォーマンスを低下させることがわかります。

それがIISでの私の目標ですが、現在、正確な表現を取得することはできません。パフォーマンスは確かに変化しています。ロードするサービスのほとんどは、構成を解釈するXMLファイルのシリアル化と逆シリアル化も行っていることを私は知っています。

IISがどれほど複雑かを知っていて、私はそれを自動化していますが、最も単純な方法を実行しようとしています。その単純なアプローチがより複雑なアプローチまたはリファクタリングを必要とするかどうかを知りたいです。それらのサービスとプロセスが作成するので、リソースを食い尽くします。

これらの考えられる障害を正確に表現しようとしていますが、IISのパフォーマンス向上に関するドキュメントや詳細すら見つかりません。

さらに、テストを行うたびに、結果は散発的で一貫性がなく、最終的には信頼できないように見えます。

4

1 に答える 1

2

このようなものをお探しですか?

   private ServerManager _defaultManager = new ServerManager();

   public void AddSite()
   {
        // perform task
        _defaultManager.CommitChanges();            
    }

    public void RemoveSite()
    {
        // perform task
        _defaultManager.CommitChanges();
    }

    public void Dispose() {
       _defaultManager.Dispose();
    }

いくつかのテストを実行して、上記のパフォーマンスが実際に優れているかどうかを判断できるはずです。私はそれがこのようなもので双方向に行くのを見てきました。ServerManagerはIDisposableを実装し、私のコードには「管理されたIDisposableリソース」を所有するクラスがあるため、IDisposableインターフェイスを実装することをお勧めします。

http://blog.stephencleary.com/2009/08/how-to-implement-idisposable-and.html

于 2013-03-02T00:12:39.683 に答える