Đây có phải là một ví dụ hay về một HttpListener có thể mở rộng được đa luồng không?HttpListener đa luồng với await async và Tasks
Đây có phải là ví dụ như một IIS thực sự sẽ làm điều đó không?
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");
}
}
Tôi đang tìm kiếm giải pháp có thể mở rộng không dựa trên IIS. Thay vào đó chỉ trên http.sys (đó là lớp httplistener) - Lý do không dựa vào iIS là vì govt. khu vực tôi làm việc đòi hỏi diện tích bề mặt tấn công cực kỳ giảm.
Liên kết đã chết ... –
Liên kết được cập nhật. Cảm ơn bạn đã bình luận! –
Có sự khác biệt nào giữa việc sử dụng các ẩn dụ và ServicePointManager.DefaultConnectionLimit không? –