Procédure : créer un classifieur de requête
Dernière modification : jeudi 3 mars 2011
S’applique à : SharePoint Foundation 2010
Cette rubrique explique comment créer un type de classifieur de requête HTTP pour étendre le système d’analyse des performances et de limitation de requêtes de Microsoft SharePoint Foundation.
Classes de classifieur de requête
Microsoft SharePoint Foundation possède quelques types prédéfinis de classifieurs de requête. Chacun d’eux classifie les requêtes HTTP en fonction d’un ensemble particulier de caractéristiques des requêtes. Le tableau suivant indique les classes et le type de catégorie de requêtes que chacune permet de définir.
Type |
Catégorie |
---|---|
Requêtes pour des ressources portant une extension de nom de fichier spécifiée |
|
Requêtes qui contiennent un en-tête spécifié ou qui possèdent une valeur spécifiée pour un en-tête spécifié |
|
Requêtes qui contiennent un agent utilisateur spécifié ou qui utilisent une méthode HTTP spécifiée |
|
Requêtes qui proviennent de robots de recherche |
Vous pouvez probablement créer n’importe quel type d’objet classifieur requis avec l’une ou l’autre de ces classes. Toutefois, si aucune d’elles ne répond à vos besoins, vous pouvez dériver une nouvelle classe de classifieur de requête de la classe SPRequestThrottleClassifier.
Conseil |
---|
N’oubliez pas que vous n’avez pas besoin d’une nouvelle classe pour chaque type de requête dont vous devez gérer la limitation. Par exemple, SharePoint Foundation ne possède pas de classifieur SPHttpDOCXThrottleClassifier prédéfini pour gérer la limitation des requêtes pour les fichiers .docx, ni de classifieur SPHttpSVCThrottleClassifier pour gérer les requêtes pour les services REST (Representational State Transfer). Par contre, il possède un classifieur SPHttpFileExtensionThrottleClassifier plus générique. Des objets spécifiques de cette classe peuvent être créés pour des extensions de noms de fichiers spécifiques. Par conséquent, vous avez uniquement besoin de dériver une nouvelle classe de SPRequestThrottleClassifier si une catégorie de caractéristique de requête n’est prise en charge par aucune des classes prédéfinies dérivées de SPRequestThrottleClassifier. |
Dérivation d’une nouvelle classe
La création d’une classe de classifieur comprend deux tâches au minimum, ainsi que deux autres tâches pratiquement toujours requises. Les tâches minimales sont les suivantes :
Substituez la propriété ThrottleLevel qui spécifie dans quelle phase de limitation éventuelle les requêtes correspondantes sont bloquées. Vous pouvez spécifier FirstStage (l’intégrité du processus de travail est médiocre), SecondStage (l’intégrité du processus de travail est médiocre depuis au moins 60 secondes) ou Never. (Étant donné que le comportement par défaut du système pour les requêtes qui ne correspondent à aucun classifieur consiste à les bloquer dans la première phase, vous devez créer spécifiquement un objet classifieur avec un niveau de limitation de Never pour toutes les requêtes qui doivent être dispensées de limitation.) La propriété ThrottleLevel est en lecture seule. Si chaque objet de votre classe doit toujours avoir le même niveau de limitation, implémentez la propriété de manière à ce qu’elle retourne toujours ce niveau. Sinon, implémentez-la de manière à ce qu’elle retourne la valeur d’un champ de stockage qui est défini par un constructeur de classe et qui peut avoir une valeur par défaut.
Substituez la méthode Match(HttpRequest). Cette méthode contient la logique qui détermine si l’objet classifieur classifie une requête HTTP en tant que correspondance. Par conséquent, il définit effectivement la « catégorie » du classifieur conformément au sens utilisé dans le tableau plus haut dans cette rubrique. Pour obtenir des exemples, voir les méthodes Match des quatre classes dans le tableau.
Les deux tâches supplémentaires qui sont pratiquement toujours requises sont les suivantes :
Ajoutez davantage de propriétés et de méthodes d’assistance en fonction de la logique de substitution de la méthode Match(HttpRequest). Là encore, pour obtenir des exemples, voir les classes dans le tableau.
Ajoutez un constructeur pour la classe. En règle générale, vous avez besoin du constructeur pour définir la valeur de la propriété ThrottleLevel et éventuellement celle d’autres propriétés dans la classe.
Voir aussi
Tâches
Procédure : créer et inscrire ou désinscrire un classifieur de requête