IIS7

2009-07-20 13 views
6

पर स्थिर सामग्री के लिए चलने से HttpModule को बहिष्कृत करें मुझे अपने प्रमाणीकरण HttpModule के साथ कोई समस्या है। समस्या यह है कि यह स्पष्ट रूप से मेरे वेब सर्वर (आईआईएस 7) पर मिलने वाले प्रत्येक अनुरोध के लिए चलता है। क्योंकि यह सत्र चर का भी उपयोग करता है, यह सीएसएस, जेएस फाइलों और इसी तरह से ठीक से काम करने में विफल रहता है।IIS7

मैं का उपयोग करने की कोशिश की:

<add name="AuthModuleName" type="..." preCondition="managedHandler" /> 

लेकिन कोई लाभ नहीं हुआ। यह अभी भी इसके विस्तार या माइम प्रकार के बावजूद हर अनुरोध पर चलता है। मुझे यह भी जोड़ना चाहिए कि

<modules runAllManagedModulesForAllRequests="true"> 

जो मुझे संदिग्ध लग रहा था और वास्तव में मॉड्यूल पर प्रीकंडीशन अक्षम कर रहा था। लेकिन इसे गलत में बदलकर, एप्लिकेशन को पूरी तरह से अलग तरीके से तोड़ता है और एक अलग अपवाद के साथ (सत्रस्टेट टेम्पम्डाटाप्रोवाइडर को सत्रस्टेट सक्षम होना आवश्यक है)।

क्या कोई मेरी मदद कर सकता है कि आईआईएस 7 को मेरे एचटीपी मॉड्यूल को बाहर करने के लिए कैसे मजबूर किया जाए जब स्थिर सामग्री फ़ाइलों के लिए अनुरोध किए जाते हैं?

+0

बीटीडब्ल्यू, आपको यकीन है कि यह आईआईएस 7 है और एएसपी.NET विकास सर्वर नहीं है, है ना? बस दोहरी जांच। –

+0

मैं 100% सुनिश्चित हूं ... –

उत्तर

3

runAllManagedModulesForAllRequests विशेषता झूठी लिए सेट किया जा करने के लिए वास्तव में किसी भी मॉड्यूल जिस तरह से आप चाहते हैं कॉन्फ़िगर करने के लिए है। आपको सत्र और दूसरों को आवश्यकतानुसार सही ढंग से पुन: कॉन्फ़िगर करना होगा, लेकिन मुख्य बात हैंडलर पाइपलाइन निष्पादन आदेश है जो अनुरोधों को संभालता है।

जवाब one of my other questions में प्रदान किया गया था: कि जवाब है कि सही ढंग से काम किया प्रदान की पीटर के लिए

धन्यवाद।

1

मुझे इसके लिए आईआईएस 7 सेटिंग के बारे में पता नहीं है लेकिन आप यह कर सकते हैं।

सत्र वस्तु केवल गैर-स्थैतिक सामग्री के लिए उपलब्ध हो जाएगा:

void yourEventHandler(object sender, EventArgs e) { 
    HttpApplication app = (HttpApplication)sender; 
    if (app.Context.Session == null) { 
     return; 
    } 
    // then your code here... 
} 

इससे यह सुनिश्चित होगा अपने कोड सीएसएस, जे एस आदि जैसे फ़ाइलों के लिए नहीं चलाया जाएगा लेकिन ध्यान रखें सत्र वस्तु जाएगा PostAcquireRequestState घटना से पहले भी तैयार न हों। (HttpApplication घटनाओं के आदेश के लिए, this page देखें।)

संपादित करें: इसके अलावा, यह ASP.NET विकास सर्वर के साथ प्रकट होता है (हालांकि मैं आप अपने प्रश्न में IIS7 कहा पता है), आपके HttpModule अभी भी के लिए चलेगा स्थैतिक फाइलें

+0

हाँ मैं PostAququireRequestState में सत्र सामग्री को संभालने में कामयाब रहा हूं ... लेकिन मुझे अभी भी लगता है कि मेरे मॉड्यूल को पूरी तरह से बाहर करना संभव है ... मुझे इसे "runAllManagedModulesForAllRequests = false" के साथ काम करना है । क्योंकि यह प्रत्येक अनुरोध पर चलाने के लिए मेरा मॉड्यूल सेट करता है। –

+0

यह दृष्टिकोण उन पृष्ठों के साथ काम नहीं करता है जो सत्र का उपयोग नहीं करते हैं। – ygormutti