Dependiendo de lo que esté haciendo, no esperaría ver una gran mejora con solo usar un HttpHandler. Comenzaría simplemente escribiendo HttpHandler y viendo cómo funciona. Si necesita que sea más rápido, intente ver más de cerca las cosas que realmente está haciendo mientras procesa la solicitud y ver qué se puede optimizar. Por ejemplo, si está haciendo un registro en una base de datos, intente escribir en una base de datos local en lugar de hacerlo en una red. Si aún no es lo suficientemente rápido, entonces tal vez busque escribir algo de nivel inferior. Hasta ese momento, me quedaría con lo que sea más fácil para ti.
Como referencia, he escrito un servidor de anuncios en ASP.NET (usando HttpHandlers) que puede publicar un anuncio (incluida la orientación y el registro de la impresión en una base de datos local) en 0-15ms bajo carga. Pensé que estaba procesando bastante, pero ese es un tiempo de respuesta bastante bueno en mi humilde opinión.
Update después de varios meses:
Si se quitan todos los HttpModules que se incluyen por defecto, esto eliminará una buena cantidad de gastos generales. Por defecto, los siguientes HttpModules se incluyen en cada sitio a través del archivo web.config a nivel de máquina:
- OutputCache
- Sesión (para el estado de sesión)
- WindowsAuthentication
- FormsAuthentication
- PassportAuthentication
- RoleManager
- UrlAuthorization
- FileAuthorization
- AnonymousIdentification
- Perfil
- ManejadorError
- ServiceModel
Como he dicho anteriormente, mi servidor de anuncios no utiliza ninguno de estos, por lo que acabamos de hacer esto en que la aplicación de web.config:
<httpModules>
<clear />
</httpModules>
Si necesita algunos de ellos, pero no todos, puede quitar los que no es necesario:
<httpModules>
<remove name="PassportAuthentication" />
<remove name="Session" />
</httpModules>
ASP.NET MVC Nota: ASP.NET MVC requiere el módulo de estado de sesión a menos que haga algo específico para solucionarlo. Consulte esta pregunta para obtener más información: How can I disable session state in ASP.NET MVC?
Actualización para IIS7: Desafortunadamente, las cosas no son tan simples en IIS7. Aquí está how to clear HTTP Modules in IIS7
Estás muerto: realizaré algunos inicios de sesión en una base de datos. Y planeé crear pequeños archivos de texto en lugar de ir a la base de datos. Los archivos se procesarán más tarde. Pero en función de su experiencia y tiempo de respuesta impresionante que logró, seguiré adelante con un simple acceso HttpHandler y db. –
Lo que hemos hecho es poner una instancia de SQL Express en los servidores web en los que se escribe, y luego hay un trabajo que extrae todos los datos de las instancias del servidor web en nuestro servidor SQL principal. –
Impresionante, gracias por la actualización. Muy útil. –