2016-09-07 10 views
17

में मुझे एक बिंदु के साथ पथ मेरी वेब.कॉन्फिग फ़ाइल में एक स्थान तत्व जोड़ने की आवश्यकता है, लेकिन पथ एक बिंदु से शुरू होता है (और मुझे नहीं लगता कि मैं उस पथ को बदल सकता हूं, यह letsencrypt स्वचालन के लिए है)।वेब.config <location>

यदि मैं <location path=".well-known/acme-challenge"></location> में डॉट को छोड़ देता हूं, तो साइट बिल्कुल शुरू नहीं होती है (मुझे लगता है कि web.config फ़ाइल बिल्कुल पार्स नहीं की गई है क्योंकि मुझे पृष्ठ कस्टमर कॉन्फ़िगर करने के लिए कह रहा है, लेकिन यह पहले से ही है कॉन्फ़िगर किया गया है और आमतौर पर ठीक काम करता है)

यदि मैं <location path="well-known/acme-challenge"></location> में डॉट को हटा देता हूं, तो web.config फ़ाइल सही ढंग से लोड हो जाती है, लेकिन निश्चित रूप से यह मेरी इच्छा के स्थान पर कुछ भी कॉन्फ़िगर करने में मेरी सहायता नहीं करता है।

अंतिम लक्ष्य केवल इस पथ पर मूल प्रमाणीकरण (जिसे मुझे शेष साइट के लिए चाहिए) को अक्षम करना है; मुझे यह भी नहीं पता कि मैं इसे <location> तत्व में सेट करने में सक्षम हूं या नहीं।

+0

इसके लायक होने के लिए, मैंने पूरी साइट पर मूल प्रमाणीकरण को हटाकर मेरी समस्या हल कर ली है (यह तब भी अस्थायी था जब तक अंतिम प्रमाणीकरण प्रणाली लागू नहीं की गई थी)। अभी भी यह जानने में दिलचस्पी है कि क्या कोई और समाधान है या नहीं। – youen

+3

हमेशा डॉट फ़ोल्डर (.well-ज्ञात) फ़ोल्डर के अंदर अलग web.config बनाने की संभावना है। –

+0

मैं ओन्ड्रेज का दूसरा सुझाव दूंगा। डॉट स्थानों के लिए एक वर्जित प्रारंभिक चरित्र है, लेकिन आप एक कॉन्फ़िगरेशन फ़ाइल को फ़ोल्डर में एक प्रभावी वर्कअराउंड के रूप में छोड़ सकते हैं। –

उत्तर

8

मुझे ऐसी ही समस्या थी जहां मेरे पास एएसपी.NET फॉर्म साइट थी जो सभी पृष्ठों पर प्रमाणीकरण को मजबूर कर रही थी।

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <!-- This will stop any redirects you have at the higher level --> 
    <httpRedirect enabled="false" /> 

    <!-- This will stop any integrated mode settings you have at the higher level --> 
    <validation validateIntegratedModeConfiguration="false"/> 
    </system.webServer> 

    <!-- This will allow unauthenticated users to acme-challenge subfolder --> 
    <location path="acme-challenge"> 
    <system.web> 
     <authorization> 
     <allow users="*"/> 
     </authorization> 
    </system.web> 
    </location> 
</configuration> 

:

स्वीकार किए जाते हैं जवाब पर विस्तार करने के लिए, यहाँ सटीक web.config मैं /.well-known फ़ोल्डर में रखा (नहीं /.well-known/acme-challenge फ़ोल्डर) है इस फ़ाइल को जोड़ने के बाद, मैं आईआईएस में साइट के साथ एन्क्रिप्ट करने के लिए EcdsaAcmeNet का उपयोग करने में सक्षम था।

3

टिप्पणियों में ओन्ड्रेज स्वेदजदार द्वारा सुझाए गए अनुसार, समाधान इतना आसान है कि मैंने इसके बारे में नहीं सोचा था।

बस उस फ़ोल्डर में एक और web.config फ़ाइल जोड़ें जहां आपको इसकी आवश्यकता है।

संबंधित मुद्दे