這將是一個可擴展的HttpListener一個很好的例子是多線程?多線程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的原因是因爲政府。我工作的地區需要極大地減少攻擊面積。
鏈接已死... –
更新的鏈接。感謝您的評論! –
使用信號量和ServicePointManager.DefaultConnectionLimit是否有區別? –