这会是多线程的可扩展 HttpListener 的一个很好的例子吗?
这是例如一个真正的 IIS 将如何做到的吗?
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");
}
}
我正在专门寻找一种不依赖 IIS 的可扩展解决方案。而是仅在 http.sys (这是 httplistener 类)上 - 不依赖 iIS 的原因是因为 govt。我工作的区域需要极小的攻击表面积。