2011-05-26 9 views

Respuesta

21

WCF maneja la regulación a través de la clase ServiceThrottlingBehavior.

How to throttle a Wcf service

WCF proporciona un comportamiento de estrangulación a administrar la carga del servidor y el consumo de recursos (con las siguientes propiedades ):

  • MaxConcurrentCalls. Limita el número de solicitudes simultáneas que pueden procesarse por en todas las instancias de servicio. El valor predeterminado es 16.

  • MaxConcurrentInstances. Limita el número de instancias de servicio que pueden asignarse en un momento determinado. Para los servicios de PerCall, esta configuración coincide con el número de llamadas concurrentes. Para los servicios PerSession, esta configuración coincide con el número de instancias activas de la sesión . Esta configuración no importa para el modo Single instancing, porque se crea una sola vez. El valor predeterminado para esta configuración es 2,147,483,647.

  • MaxConcurrentSessions. Limita el número de sesiones activas permitidas para el servicio. Esto incluye sesiones de aplicación , sesiones de transporte (para TCP y canalizaciones con nombre, por ejemplo), sesiones confiables y sesiones seguras . El valor por defecto es 10.

No creo que hay un mecanismo incorporado para controlar el ancho de banda. Debería implementar una transmisión personalizada. Utiliza un hilo para escribir la secuencia. A continuación, puede controlar la cantidad de datos para escribir cada segundo. Por ejemplo, puede escribir 250 Kb, y luego realizar una secuencia de reposo durante un segundo.

Consulte también: Concurrency and Throttling Configurations for WCF Services

7

Ok, loco finales del Viernes tiro en la oscuridad: de Scott Gu escribió en su blog acerca de un nuevo módulo de limitación de velocidad de bits para IIS 7 Aquí: http://weblogs.asp.net/scottgu/archive/2008/03/18/iis-7-0-bit-rate-throttling-module-released.aspx

En realidad está destinado a los medios de comunicación archivos, pero fuera de la caja, se desencadena por la extensión. Por sí solo, esto puede no ser suficiente: está entregando los archivos de un servicio - .svc, y probablemente no desee restringir todas sus llamadas de servicio. (Si no le importa estrangular a todos, podría funcionar de la caja - simplemente establezca una regla en .svc.

Lo que es más interesante es esta publicación: http://learn.iis.net/page.aspx/149/bit-rate-throttling-extensibility-walkthrough/ Este tipo habla sobre cómo personalizar el estrangulador

Puede hacerlo en función del contenido de la respuesta (tiene ejemplos de cómo leer la tasa de bits dentro de un archivo multimedia).

O, aproximadamente 3/4 del camino hacia abajo el artículo, busca esta partida: "Definición de las variables de servidor de programación"

Él describe cómo construir un módulo HTTP/manejador - usted podría utilizar teóricamente que para desencadenar la regulación de IIS en función de una URL (como la url de su servicio de servidor de medios)

Nunca he probado esto - WAG total antes de ir a casa durante el fin de semana. ¡Buena suerte!

Cuestiones relacionadas