ASP.NET Core प्रॉक्सी सेटिंग्स: launchSettings.json बनाम प्रोडक्शन
डेवलपमेंट लॉन्च-प्रोफ़ाइल के प्रॉक्सी मानों को परिनियोजित ASP.NET Core प्रक्रिया के वातावरण और HTTP हैंडलर से अलग पहचानें।
launchSettings.json में मौजूद प्रॉक्सी मान एक डेवलपमेंट लॉन्च प्रोफ़ाइल का होता है। ऐप्लिकेशन प्रकाशित करने से वह प्रोफ़ाइल IIS वर्कर, सेवा या कंटेनर का वातावरण नहीं बन जाता।
परिनियोजित वातावरण में विफलता पर उस प्रक्रिया की जाँच करें जो वास्तव में ऐप्लिकेशन शुरू करती है। उसका वातावरण, खाता और HTTP हैंडलर तय करते हैं कि कौन-से प्रॉक्सी इनपुट उपलब्ध हैं।
| कहाँ काम करता है | परिनियोजन के बाद क्या तुलना करें |
|---|---|
| IDE लॉन्च प्रोफ़ाइल | होस्ट प्रक्रिया का वातावरण |
| इंटरैक्टिव उपयोगकर्ता सत्र | सेवा खाता और उसकी प्रॉक्सी सेटिंग्स |
| मैन्युअल रूप से बनाया गया HTTP क्लाइंट | ऐप्लिकेशन के इंजेक्ट किए गए क्लाइंट द्वारा उपयोग किया जाने वाला हैंडलर |
आधुनिक HttpClient का डिफ़ॉल्ट प्रॉक्सी आरंभीकरण प्लेटफ़ॉर्म-विशिष्ट वातावरण और सिस्टम-कॉन्फ़िगरेशन नियमों का पालन करता है। स्पष्ट रूप से कॉन्फ़िगर किया गया हैंडलर उन डिफ़ॉल्ट को ओवरराइड कर सकता है। IHttpClientFactory के साथ, नामित क्लाइंट के प्राथमिक हैंडलर का पंजीकरण और कॉल स्थल पर प्राप्त नाम की जाँच करें। यह निष्कर्ष निकालने से पहले कि कॉन्फ़िगरेशन फ़ाइल अनदेखी की गई, दोनों इनपुट जाँचें।
.NET Framework के पुराने system.net/defaultProxy उदाहरण एक अलग कॉन्फ़िगरेशन मॉडल का वर्णन करते हैं। उस अनुभाग को आधुनिक परिनियोजन फ़ाइल में चिपकाएँ नहीं और यह न मानें कि हर .NET HTTP कार्यान्वयन उसे उपभोग करता है। IIS परिनियोजन में, ASP.NET Core मॉड्यूल के पास भी प्रक्रिया-वातावरण कॉन्फ़िगरेशन की समर्थित व्यवस्था है; मान जोड़ते समय उस होस्टिंग कॉन्फ़िगरेशन का बाकी हिस्सा सुरक्षित रखें।
अपेक्षित चर मौजूद है या नहीं, यह दर्ज करें, पर उसका पूरा क्रेडेंशियल-युक्त मान प्रकाशित न करें। फिर पुष्टि करें कि विफल अनुरोध करने वाला क्लाइंट उसी स्रोत का उपयोग करता है। सही ढंग से कॉन्फ़िगर किया गया लॉन्चर उस क्लाइंट को ठीक नहीं कर सकता जो जानबूझकर दूसरा मार्ग अपनाता है।