ASP.NET 1.x / 2.0
ASP.NET WebForms sobre el runtime .NET 2.0. La cabecera X-AspNet-Version: 2.0.50727 es literalmente el número de compilación del .NET Framework 2.0, publicado en 2005.
Por qué entonces
WebForms fue un intento deliberado de que programar para web se pareciera a programar una aplicación de escritorio: arrastras un botón, escribes su evento Click y el framework se encarga del resto. Para una plantilla formada en Visual Basic —que es la que tenían muchos departamentos públicos— fue la puerta de entrada a la web sin reciclarse.
Qué pasó
El precio de esa comodidad fue el ViewState: un campo oculto donde se serializa el estado entero de la página y viaja en cada petición. Cuando llegaron el móvil y el JavaScript moderno, ese modelo se hizo insostenible. Microsoft se movió a MVC (2009) y luego a ASP.NET Core.
Por qué está mal hoy
El runtime .NET 2.0 dejó de recibir soporte independiente hace años. Y el ViewState de esa generación tiene un historial serio de problemas de deserialización cuando las claves de máquina son débiles o compartidas.
En lo público
Que la cabecera anuncie la versión exacta del runtime es, además, un regalo gratuito: cualquiera sabe contra qué está mirando sin hacer nada.
El arreglo
Migración a .NET moderno. Es un salto grande; el paso intermedio realista es dejar de publicar la cabecera y aislar la aplicación detrás de un proxy mientras se planifica.
Esta ficha explica la tecnología; los casos concretos, con su cita y su procedencia, viven en las piezas.