Procedimiento para crear un nuevo clasificador de solicitudes
Última modificación: jueves, 03 de marzo de 2011
Hace referencia a: SharePoint Foundation 2010
En este tema se describe cómo crear un nuevo tipo de clasificador de solicitudes HTTP para ampliar la supervisión del rendimiento y el sistema de limitación de solicitudes de Microsoft SharePoint Foundation.
Clases de clasificadores de solicitudes
Microsoft SharePoint Foundation tiene algunos tipos integrados de clasificadores de solicitudes. Cada uno de ellos clasifica las solicitudes HTTP en función de un determinado conjunto de características de las solicitudes. En la siguiente tabla se muestran las clases de clasificadores y el tipo de categoría de solicitud que cada uno de ellos puede definir.
Tipo |
Categoría |
---|---|
Solicitudes de recursos con una extensión de nombre de archivo especificada |
|
Solicitudes que tienen un encabezado especificado o un valor especificado para un encabezado especificado |
|
Solicitudes que tienen un agente de usuario especificado o que usan un método HTTP especificado |
|
Solicitudes que provienen de rastreadores de búsqueda |
Es probable que pueda crear cualquier tipo de objeto de clasificador que necesite mediante alguna de estas clases. Sin embargo, si ninguna de ellas satisface sus necesidades, puede derivar una clase nueva de clasificador de solicitudes de la clase SPRequestThrottleClassifier.
Sugerencia |
---|
Recuerde que no necesita una clase nueva para cada tipo de solicitud cuya limitación debe administrar. Por ejemplo, SharePoint Foundation no tiene integrado un SPHttpDOCXThrottleClassifier para administrar la limitación de solicitudes para los archivos .docx ni tampoco un SPHttpSVCThrottleClassifier para administrar las solicitudes para los servicios de transferencia de estado representacional (REST). En su lugar, tiene un SPHttpFileExtensionThrottleClassifier más genérico. Se pueden crear objetos específicos de esta clase para extensiones de nombre de archivo específicas. Por lo tanto, solo debe derivar una clase nueva de SPRequestThrottleClassifier si hay una categoría con características de solicitud que no se incluye en las clases integradas que derivan de SPRequestThrottleClassifier. |
Derivación de una clase nueva
Como mínimo, hay dos tareas para crear una clase nueva de clasificador y hay dos tareas más que casi siempre son necesarias. Las tareas mínimas son las siguientes:
Invalidar la propiedad ThrottleLevel que especifica en qué fase de la limitación de peticiones se bloquean las solicitudes coincidentes, en caso de que se desee bloquearlas. Puede especificar FirstStage (el proceso de trabajo es deficiente), SecondStage (el proceso de trabajo ha sido deficiente por al menos 60 segundos) o Never. (El valor predeterminado del sistema para las solicitudes que no coinciden con ningún clasificador es bloquearlas en la primera fase, por lo que debe crear específicamente un objeto clasificador con un nivel de limitación Never para las solicitudes que no deben tenerse en cuenta en la limitación.) La propiedad ThrottleLevel es de solo lectura. Si cada objeto de la clase debe tener siempre el mismo nivel de limitación de peticiones, implemente la propiedad para que devuelva siempre ese nivel. De lo contrario, impleméntela para devolver el valor de un campo de respaldo establecido por un constructor de clases que puede tener un valor predeterminado.
Invalidar el método Match(HttpRequest). El método contiene la lógica que determina si el objeto clasificador clasifica una solicitud HTTP como coincidente, por lo que define de forma efectiva la "categoría" del clasificador en el sentido en el que se la usa en la tabla que se proporcionó anteriormente en este tema. Por ejemplo, vea los métodos Match de las cuatro clases de la tabla.
Las dos tareas adicionales que casi siempre son necesarias son las siguientes:
Agregar más propiedades y métodos auxiliares cuando sea necesario según la lógica de la invalidación del método Match(HttpRequest). Nuevamente, los ejemplos se encuentran en la tabla.
Agregar un constructor para la clase. Por lo general, necesitará que el constructor establezca el valor de la propiedad ThrottleLevel y, posiblemente, que establezca también el valor de otras propiedades de la clase.
Vea también
Tareas
Procedimiento para crear y registrar o cancelar el registro de un clasificador de solicitudes