2012-07-26 4 views
34

He estado buscando en SignalR desde los últimos días. Al usar esto, he creado un Tablero de administración para obtener información en tiempo real sobre una tabla de base de datos. Básicamente, esta tabla se llena con diferentes usuarios de diferentes aplicaciones. Ha salido bien. Estas actualizaciones son posibles solo cuando hay una conexión persistente entre el cliente Broswer y WebServer. Tengo pocas dudas antes de implementar esta aplicación en producción.Durante el uso del señalizador, ¿habrá algún límite de conexión en IIS

Entiendo que SignalR comprueba primero WebSockets y luego busca Long Polling en función de la disponibilidad existente entre el cliente y el servidor. No importa lo que use, habrá una conexión abierta entre el cliente y el servidor.

Mi pregunta es cómo funciona en el escenario donde más usuarios están conectados al mismo servidor, por ejemplo, 100.000 administradores están conectados al mismo tiempo. ¿IIS tiene alguna limitación en la cantidad de conexiones persistentes que puede abrir en un punto? Si es así, podemos configurar eso para el valor máximo y qué wud es ese valor.

Lo siento si es cuestión de novato

ASP.NET MVC3 & IIS 7 se utilizan para el desarrollo.

Respuesta

21

Debe revisar el Performance Section de SignalR Wiki en GitHub. Esto proporciona la muy buena guía para lo siguiente:

  • configuración de IIS - Número máximo de solicitudes simultáneas por aplicación
  • configuración de ASP.NET - Max concurrente Pide límites de la cola & Solicitar

Además, se establece la Contadores de Peformance clave para monitorear al realizar pruebas de carga de su aplicación. Qué IMO debe hacer para comprender realmente cómo se realizará su aplicación y hacer ajustes según sea necesario para su escenario específico.

Finalmente, hay un enlace a Crank la herramienta recomendada para generar la carga del cliente con SignalR.

Actualización: Enlace a la manivela ahora es actual.

+0

gracias Paige lo comprobará y actualizará mis hallazgos aquí –

+2

Parece que el enlace original de Crank ya no es válido. Aquí hay uno nuevo: https://github.com/SignalR/SignalR/tree/dev/src/Microsoft.AspNet.SignalR.Crank – killthrush

3

Gracias Paige. Aquí están mis hallazgos. ASP.NET 4.0 acepta de forma predeterminada 5000 solicitudes concurrentes máximas por CPU. Para cambiar esto, necesitamos establecer este número en el archivo de configuración de ASP.NET que se puede encontrar en esta ubicación % windir% \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet.config

También encontré este gran PodCast por Scott HanselMan http://www.hanselminutes.com/325/aspnet-45-updates-core-webforms-and-signalr-with-damian-edwards

+0

¿Cómo se establece el máximo de solicitudes concurrentes por CPU? (¿Cuál es el parámetro XML?) Mi aspnet.config no tiene ningún parámetro obvio para modificar. –

0

Probablemente sea más probable que se encuentre con esto en Windows 8/10 que tiene límites de conexión de solo 10 *. Esto solo te afectará durante el desarrollo del curso, pero es un gran problema si tienes varios navegadores abiertos con conexiones activas y es muy fácil exceder 10.

* No puedo confirmar en este momento que Windows 10 el mismo límite de conexión que Windows 8, pero probablemente sea así.

+1

http://www.asp.net/signalr/overview/getting-started/supported-platforms "no se deben utilizar las versiones completas de IIS o Cassini, ya que habrá un límite de 10 conexiones simultáneas impuestas, que se alcanzarán muy rápido ya que las conexiones son transitorias, se restablecen con frecuencia y no se eliminan inmediatamente cuando ya no se usan. IIS Express se debe usar en los sistemas operativos del cliente ". – turnhose

Cuestiones relacionadas