¿Sería este un buen ejemplo de un HttpListener escalable con múltiples subprocesos?HttpListener de subprocesos múltiples con aguardar asíncrono y tareas
¿Es así como por ejemplo un IIS real lo haría?
public class Program
{
private static readonly HttpListener Listener = new HttpListener();
public static void Main()
{
Listener.Prefixes.Add("http://+:80/");
Listener.Start();
Listen();
Console.WriteLine("Listening...");
Console.WriteLine("Press any key to exit...");
Console.ReadKey();
}
private static async void Listen()
{
while (true)
{
var context = await Listener.GetContextAsync();
Console.WriteLine("Client connected");
Task.Factory.StartNew(() => ProcessRequest(context));
}
Listener.Close();
}
private static void ProcessRequest(HttpListenerContext context)
{
System.Threading.Thread.Sleep(10*1000);
Console.WriteLine("Response");
}
}
Estoy buscando específicamente una solución escalable que NO dependa de IIS. En cambio, solo en http.sys (que es la clase httplistener): la razón para no confiar en iIS es porque el gobierno. el área en la que trabajo requiere un área de ataque extremadamente reducida.
Los enlaces están muertos ... –
Enlaces actualizados. ¡Gracias por el comentario! –
¿Hay alguna diferencia entre usar semáforos y ServicePointManager.DefaultConnectionLimit? –