सभी ASP.NET Core एप्लिकेशन को एक WebHost ऑब्जेक्ट की आवश्यकता होती है जो अनिवार्य रूप से एप्लिकेशन और वेब सर्वर के रूप में कार्य करता है। WebHostBuilder का उपयोग WebHost को कॉन्फिगर और बनाने के लिए किया जाता है। आप आमतौर पर WebHostBuilder सेटअप कोड में UseKestrel() और UseIISIntegration() देखेंगे।
ये क्या करते हैं?
UseKestrel() − यह Kestrel के लिए IServer इंटरफ़ेस को रजिस्टर करता है जो आपके एप्लिकेशन को होस्ट करने के लिए उपयोग किया जाने वाला सर्वर होगा।
भविष्य में, अन्य विकल्प हो सकते हैं, जिसमें WebListener शामिल होगा जो केवल Windows के लिए होगा।
UseIISIntegration() − यह ASP.NET को बताता है कि IIS Kestrel के सामने रिवर्स प्रॉक्सी के रूप में काम करेगा।
यह तब उन सेटिंग्स को निर्दिष्ट करता है जिनके आसपास Kestrel को किस पोर्ट पर सुनना चाहिए, फॉरवर्डिंग हेडर्स, और अन्य विवरण।
उदाहरण
public class Program{ public static void Main(string[] args){ var host = new WebHostBuilder() .UseKestrel() .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() .Build(); host.Run(); } }
ASP.NET Core 2.2 तक, ASP.NET Core को IIS में आउट-ऑफ-प्रोसेस होस्ट किया गया था, हमारे पास एक एप्लिकेशन के लिए दो प्रोसेस थे -
w3wp.exe, IIS प्रोसेस
dotnet.exe, ASP.NET Core प्रोसेस, जहां Kestrel वेब सर्वर शुरू किया गया था। इसका मतलब है कि IIS और Kestrel उन दो प्रोसेस के बीच संचार कर रहे थे।
इस परिदृश्य के लिए, हम UseIISIntegration का उपयोग करते हैं।