新しい要求分類子を作成する
最終更新日: 2015年3月9日
適用対象: SharePoint Foundation 2010
このトピックでは、Microsoft SharePoint Foundation のパフォーマンス監視と要求調整システムを拡張する新しい種類の HTTP 要求分類子を作成する方法について説明します。
要求分類子クラス
Microsoft SharePoint Foundation には、要求分類子の組み込み型がいくつかあります。これらの各組み込み型は、HTTP 要求を、要求の特定の特性セットに基づいて分類します。次の表に、クラスと、要求カテゴリの種類を示します。各クラスは定義で使用できます。
型 |
カテゴリ |
---|---|
指定されたファイル名拡張子を持つリソースの要求 |
|
指定されたヘッダーを含む要求、または指定されたヘッダーの指定された値を持つ要求 |
|
指定されたユーザー エージェントを持つ要求、または指定された HTTP メソッドを使用する要求 |
|
検索クローラーからの要求 |
必要なあらゆる種類の分類子オブジェクトは、これらのクラスをさまざまな方法で使用して作成できます。ただし、これらのどのクラスもユーザーのニーズを満たさない場合は、新しい要求分類子クラスを SPRequestThrottleClassifier クラスから派生できます。
ヒント |
---|
調整の管理が必要なすべての種類の要求に対して新しいクラスを作成する必要はありません。たとえば、SharePoint Foundation には、docx ファイルの要求の調整を管理する組み込みの SPHttpDOCXThrottleClassifier や、REST (Representational State Transfer) サービスの要求を管理する SPHttpSVCThrottleClassifier がありません。代わりに、より一般的な SPHttpFileExtensionThrottleClassifier があります。特定のファイル名拡張子に対して、このクラスの特定のオブジェクトを作成できます。したがって、SPRequestThrottleClassifier から派生した組み込みクラスで考慮されていない要求特性のカテゴリがある場合は、新しいクラスを SPRequestThrottleClassifier から派生するだけで済みます。 |
新しいクラスの派生
新しい分類子クラスを作成するには、必須の 2 つのタスクがあります。また、ほぼ常に必要なさらに 2 つのタスクもあります。必須のタスクは以下のとおりです。
調整の段階が存在する場合、そのどの段階で、一致する要求をブロックするかを指定する ThrottleLevel プロパティをオーバーライドします。FirstStage (ワーカー プロセスの状態が良くない)、SecondStage (ワーカー プロセスの良くない状態が 60 秒以上継続した)、または Never を指定できます (どの分類子にも一致しない要求に対するシステムの既定は、その要求を第 1 段階でブロックすることです。したがって、調整を免除する必要のあるあらゆる要求について、Never の調整レベルを持つ分類子オブジェクトを特別に作成する必要があります)。ThrottleLevel プロパティは読み取り専用です。クラスのすべてのオブジェクトを同じ調整レベルに常に維持する必要がある場合、そのレベルに常に戻るプロパティを実装します。そうでない場合は、バッキング フィールドの値に戻るプロパティを実装します。バッキング フィールドの値は、クラス コンストラクターで設定し、既定値を含めることができます。
Match(HttpRequest) メソッドをオーバーライドします。このメソッドには、分類子オブジェクトが HTTP 要求を一致として分類するかどうかを決定するロジックが含まれます。したがって、このメソッドは、このトピックの前半の表で使用されるという意味での "カテゴリ" を効果的に定義します。たとえば、表内の 4 つのクラスの Match メソッドを参照してください。
ほぼ常に必要なさらに 2 つのタスクは以下のとおりです。
Match(HttpRequest) メソッドのオーバーライド内のロジックで、プロパティとヘルパー メソッドを必要に応じて追加します。例については、表内のクラスを参照してください。
クラスのコンストラクターを追加します。通常、このコンストラクターで ThrottleLevel プロパティの値を設定する必要があります。また、クラス内のその他のプロパティの値を設定する場合もあります。