Configure मेथड ASP.NET Core एप्लिकेशन के Startup क्लास में मौजूद होता है। यह वह स्थान है जहां आप IApplicationBuilder इंस्टेंस का उपयोग करके अपने एप्लिकेशन के रिक्वेस्ट पाइपलाइन को कॉन्फिगर कर सकते हैं, जो बिल्ट-इन IoC कंटेनर द्वारा प्रदान किया जाता है।
Configure मेथड के पैरामीटर्स
Configure मेथड में डिफ़ॉल्ट रूप से ये तीन पैरामीटर्स होते हैं:
- IApplicationBuilder: एप्लिकेशन के रिक्वेस्ट पाइपलाइन को कॉन्फिगर करने के लिए तंत्र प्रदान करने वाली क्लास को परिभाषित करता है
- IWebHostEnvironment: उस वेब होस्टिंग एनवायरनमेंट के बारे में जानकारी प्रदान करता है जिसमें एप्लिकेशन चल रहा है
- ILoggerFactory: लॉगिंग के लिए फैक्टरी (वैकल्पिक, अक्सर DI के माध्यम से इंजेक्ट किया जाता है)
महत्वपूर्ण: एक्जीक्यूशन क्रम
रनटाइम पर, ConfigureServices मेथड Configure मेथड से पहले कॉल होता है। यह IoC कंटेनर के साथ कस्टम सर्विसेज रजिस्टर करने के लिए है जिनका उपयोग Configure मेथड में किया जा सकता है।
आधुनिक ASP.NET Core (.NET 6+) Configure उदाहरण
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// डेवलपमेंट एनवायरनमेंट में डेवलपर एक्सेप्शन पेज
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseSwagger();
app.UseSwaggerUI();
}
else
{
// प्रोडक्शन एरर हैंडलिंग
app.UseExceptionHandler("/Error");
app.UseHsts(); // HTTP Strict Transport Security
}
// HTTPS रीडायरेक्शन
app.UseHttpsRedirection();
// स्टेटिक फाइल्स सर्व करना (wwwroot फोल्डर से)
app.UseStaticFiles();
// रूटिंग मिडलवेयर
app.UseRouting();
// CORS (अगर कॉन्फिगर किया गया है)
app.UseCors("MyPolicy");
// ऑथेंटिकेशन और ऑथराइजेशन
app.UseAuthentication();
app.UseAuthorization();
// एंडपॉइंट रूटिंग
app.UseEndpoints(endpoints =>
{
// कंट्रोलर रूट्स
endpoints.MapControllers();
// रेजर पेजेस
endpoints.MapRazorPages();
// हेल्थ चेक्स
endpoints.MapHealthChecks("/health");
// सिग्नलआर हब्स
endpoints.MapHub("/chathub");
// डिफ़ॉल्ट फॉलबैक
endpoints.MapFallbackToPage("/_Host");
});
}
मिडलवेयर ऑर्डर का महत्व
मिडलवेयर्स का क्रम महत्वपूर्ण है क्योंकि प्रत्येक मिडलवेयर अगले को कॉल करने से पहले और बाद में ऑपरेशन कर सकता है:
// सही क्रम (सामान्य दिशानिर्देश)
app.UseExceptionHandler("/Error"); // 1. सबसे पहले - अनहैंडल्ड एक्सेप्शन्स पकड़ता है
app.UseHsts(); // 2. सुरक्षा हेडर्स
app.UseHttpsRedirection(); // 3. HTTPS रीडायरेक्ट
app.UseStaticFiles(); // 4. स्टेटिक फाइल्स (रूटिंग से पहले)
app.UseRouting(); // 5. रूटिंग रिज़ॉल्यूशन
app.UseCors(); // 6. CORS पॉलिसी
app.UseAuthentication(); // 7. ऑथेंटिकेशन (आइडेंटिटी स्थापित करता है)
app.UseAuthorization(); // 8. ऑथराइजेशन (पर्मिशन चेक करता है)
app.UseEndpoints(...); // 9. एंडपॉइंट एक्जीक्यूशन (अंतिम)
कॉन्डिशनल मिडलवेयर पाइपलाइन
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// एनवायरनमेंट-विशिष्ट मिडलवेयर
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else if (env.IsStaging())
{
app.UseStagingExceptionHandler();
}
else
{
app.UseProductionExceptionHandler();
}
// ब्रांचिंग - विशिष्ट पथ के लिए अलग पाइपलाइन
app.Map("/api", apiApp =>
{
apiApp.UseAuthentication();
apiApp.UseAuthorization();
apiApp.UseEndpoints(e => e.MapControllers());
});
app.Map("/health", healthApp =>
{
healthApp.Run(async ctx =>
{
ctx.Response.ContentType = "application/json";
await ctx.Response.WriteAsync("{\"status\":\"healthy\"}");
});
});
// मुख्य UI पाइपलाइन
app.UseStaticFiles();
app.UseRouting();
app.UseAuthentication();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapRazorPages();
endpoints.MapFallbackToPage("/_Host");
});
}
IApplicationBuilder के मुख्य मेथड्स
| मेथड | विवरण |
|---|---|
Use() | इनलाइन मिडलवेयर जोड़ता है |
UseMiddleware<T>() | टाइप्ड मिडलवेयर क्लास जोड़ता है |
Run() | टर्मिनल मिडलवेयर जोड़ता है |
Map() | पथ-आधारित ब्रांच बनाता है |
MapWhen() | शर्त-आधारित ब्रांच बनाता है |
UseEndpoints() | एंडपॉइंट रूटिंग कॉन्फिगर करता है |
नोट: .NET 6+ में मिनिमल APIs के साथ, Startup क्लास वैकल्पिक है और कॉन्फिगरेशन सीधे Program.cs में होता है।