ASP.NET Core वेब एप्लिकेशन वास्तव में एक कंसोल प्रोजेक्ट है जो Program क्लास में एंट्री पॉइंट public static void Main() से निष्पादन शुरू करता है जहां हम वेब एप्लिकेशन के लिए होस्ट बना सकते हैं।
public class Program{ public static void Main(string[] args){ BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) => WebHost.CreateDefaultBuilder(args) .UseStartup<startup>() .Build(); }
WebHost एक स्टैटिक क्लास है जिसका उपयोग IWebHost और IWebHostBuilder के इंस्टेंस को प्री-कॉन्फिगर्ड डिफॉल्ट्स के साथ बनाने के लिए किया जा सकता है।
CreateDefaultBuilder() मेथड प्री-कॉन्फिगर्ड डिफॉल्ट्स के साथ WebHostBuilder का एक नया इंस्टेंस बनाता है। आंतरिक रूप से,
यह Kestrel, IISIntegration और अन्य कॉन्फिगरेशन को कॉन्फिगर करता है। निम्नलिखित CreateDefaultBuilder() मेथड है।
- "Content Root" को वर्तमान डायरेक्टरी पर सेट करता है
- कमांड लाइन आर्ग्स को आपके कॉन्फिगरेशन ऑब्जेक्ट में पुश करने की अनुमति देता है
- appsettings.json और appsettings.{Environment}.json दोनों को कॉन्फिगरेशन ऑब्जेक्ट में लोड करने के लिए जोड़ता है
- एनवायरनमेंट वेरिएबल्स को कॉन्फिगरेशन ऑब्जेक्ट में जोड़ता है
- यदि Development में है, तो सीक्रेट्स लोड करने की अनुमति देता है।
- Console/Debug लॉगर्स जोड़ता है
- ऐप को Kestrel उपयोग करने और लोडेड कॉन्फिग से Kestrel कॉन्फिगरेशन लोड करने के लिए कहता है
- Routing जोड़ता है
- IIS Integration जोड़ता है
जब हम अपने एप्लिकेशन को IIS में होस्ट करना चाहते हैं तो हमें UseIISIntegration() मेथड जोड़ना होगा जो IIS को बाहरी वेब सर्वर के रूप में निर्दिष्ट करता है।
UseStartup<startup>() मेथड वेब होस्ट द्वारा उपयोग की जाने वाली Startup क्लास को निर्दिष्ट करता है। हम startup के स्थान पर अपनी कस्टम क्लास भी निर्दिष्ट कर सकते हैं।
Build() मेथड IWebHost का इंस्टेंस लौटाता है और Run() वेब एप्लिकेशन को तब तक शुरू करता है जब तक यह रुक नहीं जाता।