Pregunta

Hola, Estamos desarrollando una aplicación multi-arrendatario en Asp.Net con base de datos separada para cada inquilino, en el que uno de los requisitos es para supervisar el uso de ancho de banda para cada inquilino,

He intentado buscar pero no se encuentra mucha ayuda en el tema, queremos controlar exactamente la cantidad de ancho de banda se utiliza para cada inquilino, mientras que cada inquilino puede tener su propio dominio de nivel superior o un subdominio o una combinación de ambos .

¿Cuáles son las opciones disponibles, los que puedo imaginar se puede

  1. registro de IIS medios Supervisión de una aplicación separada que calcular el ancho de banda para cada inquilino.
  2. Acceder cada petición y respuesta para un inquilino desde dentro de la aplicación y luego calcular el consumo total de ancho de banda basado en eso.
  3. Use algunos terceros componentes de las partes si está disponible

Entonces, ¿qué crees que va a ser el mejor enfoque, también si hay alguna otra manera de hacerlo.

¿Fue útil?

Solución

Ok, aquí es una idea (que no tengo prueba, dejo a usted)

Global.asax utilizar uno de esta función (encontrar el que tenga un tamaño final válido)

Application_PostRequestHandlerExecute
Application_ReleaseRequestState

y obtener el tamaño que han envíe con

Response.Filter.Length

No hay necesidad de mencionar al que se obtiene el nombre del archivo de la llamada utilizando el

HttpContext.Current.Request.Path

Esto funciona llamados en cada petición, para que pueda obtener su tamaño y que el resto.

A continuación, debe señalar, que primero se necesita para poner a prueba esta idea para ver si su trabajo, y tal vez mejorarlo, y tienen en la mía que si usted tiene comprimir las páginas en el servidor de la longitud no es la correcta y, tal vez necesites comprimirlo en Global.asax para tener la longitud realidad.

Espero que esto ayuda.

Otros consejos

Bueno, ya que el registros de IIS ya contienen el tamaño de solicitud y tamaño de la respuesta, que no parece ser un problema para desarrollar una pequeña herramienta para analizar ellos y calcular el total por día / semana / mes / lo que sea.

Tratando de segmentar el tráfico basado en host es difícil de mi experiencia. En cambio, si se le da a cada inquilino su propia IP (s) para las aplicaciones que debería ser capaz de encontrar los programas que seguirá de cerca el ancho de banda basado en IP.

ADEMÁS es la estructura de IIS que usted tiene un sitio web para gobernarlos a todos para todos los inquilinos y en Login las horquillas del sistema para la base de datos adecuada? Si es así, esto puede crear problemas con respecto a las versiones en que todos los sitios de los inquilinos serán todos tienen que tener exactamente el mismo esquema y serían todos necesitan ser actualizados de forma simultánea cuando se actualiza la aplicación de tal manera que se requiere un cambio de esquema.

Otra estructura, que suena como lo que pueda tener, es que cada inquilino tiene su propio sitio web, así:

tenant1_site/appvirtualdir
tenant2_site/appvirtualdir
...

Cuando los puntos appvirtualdir a la misma ruta física para todos los sitios de los inquilinos. Cuando todos los clientes tienen la misma versión de la aplicación, todos ellos usan literalmente el mismo código. Si usted tiene este escenario y algún tipo de autenticación, entonces necesitará una dirección IP por el inquilino de todos modos debido SSL. SSL solamente se unirá a diferencia de IP y el puerto no SSL que se unirá a IP, el puerto y el host. Si ese fuera el caso, entonces la vigilancia del tráfico basado en IP todavía será más sencilla y exacta, ya que podría hacerse en el router o a través de un monitor de red.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top