सभी ASP.NET कोर अनुप्रयोगों के लिए एक WebHost ऑब्जेक्ट की आवश्यकता होती है जो अनिवार्य रूप से एप्लिकेशन और वेब सर्वर के रूप में कार्य करता है। WebHostBuilder का उपयोग वेबहोस्ट को कॉन्फ़िगर करने और बनाने के लिए किया जाता है। आप आमतौर पर WebHostBuilder सेटअप कोड में UseKestrel() और UseIISIntegration() देखेंगे।
ये क्या करते हैं?
केस्ट्रेल का उपयोग करें () - यह Kestrel के लिए IServer इंटरफ़ेस को सर्वर के रूप में पंजीकृत करता है जिसका उपयोग आपके एप्लिकेशन को होस्ट करने के लिए किया जाएगा।
भविष्य में, वेब लिस्टनर सहित अन्य विकल्प भी हो सकते हैं जो केवल विंडोज़ होंगे।
UseIISएकीकरण () - यह 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, आईआईएस प्रक्रिया
dotnet.exe, ASP.NET कोर प्रक्रिया, जहां Kestrel वेब सर्वर शुरू किया गया था। इसका मतलब है कि IIS और Kestrel उन दो प्रक्रियाओं के बीच संचार कर रहे थे।
इस परिदृश्य के लिए, हम UseIISIntegration का उपयोग करते हैं।