2010-01-21 30 views
5

द्वारा अवरुद्ध हो रहा है मेरे पास एक साधारण HTTPModule है जो कुछ कस्टम सत्र राज्य प्रबंधन करता है।जेएस, छवियों और सीएसएस HTTPModule

public void Init(HttpApplication context) 
     { 
      context.AcquireRequestState += new EventHandler(ProcessBeginRequest); 
      ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In Init " + HttpContext.Current.Request.Url.AbsoluteUri); 
     } 

और

public void ProcessBeginRequest(object sender, EventArgs e) 
     { 
      HttpApplication application = sender as HttpApplication; 
      ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest "); 
      if (application != null) 
      { 
       string requestURL = application.Context.Request.Url.ToString(); 
       ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest " + requestURL); 
      } 
      return; 
     } 

जब मैं breakpoints के साथ इस कोड भाग गया, मैंने देखा कि इस मॉड्यूल भी छवियों, जे एस और सीएसएस की तरह स्थिर फ़ाइलों के लिए लागू किया गया था। क्या किसी ने इसका अनुभव किया है? मैं सोच रहा हूं कि HTTP मॉड्यूल एएसपीनेट पृष्ठों के लिए http पाइपलाइन में केवल घटनाओं पर लगा रहे थे। क्या वे स्थिर संसाधनों पर भी हुक करते हैं? या यह सिर्फ कैसिनी के साथ है?

पर्यावरण: VS2008 - कैसिनी सर्वर

पुनश्च: मैं अपने खिलौने के डिब्बे में Win2k8 IIS7 (थोड़े नया) के साथ प्रयास किया है, और यह एक लॉग फ़ाइल के लिए लिखने का प्रयास (जैसा कि हम वी.एस. वहाँ नहीं है), लेकिन लॉग फ़ाइल में नहीं लिख सका। मुझे यकीन है कि इसकी कुछ लिखने की अनुमति समस्या है। क्या कोई मुझे कुछ संसाधनों के लिए इंगित कर सकता है जो मुझे बताता है कि W2k8

संपादित 1: मैं समझता हूं कि एकीकृत पाइपलाइन का उपयोग स्थिर और प्रबंधित संसाधनों के लिए http12 पाइपलाइनों को के समान बढ़ाएगा http://aspnet.4guysfromrolla.com/articles/122408-1.aspx और http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

हम अपने प्रोड में क्लासिक पाइपलाइन का उपयोग कर रहे हैं। लेकिन अभी भी यह जानने में रुचि है कि अन्य लोगों ने क्या अनुभव किया है।

प्रश्न 2: एकीकृत मोड में आईआईएस 7 का उपयोग करके, यह प्रदर्शन कम करेगा? मान लें कि आपके पास पाइपलाइन के साथ जुड़ने वाले कुछ मॉड्यूल हैं, प्रदर्शन प्रभाव कितना होगा? अच्छा होगा अगर कोई मुझे इसके लिए किए गए कुछ आधारभूत अध्ययनों पर इंगित कर सकता है।

उत्तर

12

ऐसा लगता है कि यह

http://learn.iis.net/page.aspx/121/iis-70-modules-overview/#Disabling

preCondition="managedHandler" और <modules runAllManagedModulesForAllRequests="false" /> की स्थापना चाल आत्म करने के लिए

टिप्पणी करना होगा करने के लिए एक तरीका है की तरह: इस StaticFileHandler

पता लगाने के लिए http://code.google.com/p/talifun-web/wiki/StaticFileHandler जरूरत संदर्भ:

http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/

Exclude HttpModule from running for static content on IIS7

BUG: IIS7 managed requests

http://msdn.microsoft.com/en-us/library/bya7fh0a.aspx

+0

धन्यवाद। इसे http://cassinidev.codeplex.com –

+0

के लिए todo में जोड़ा गया आपका "स्वयं को नोट" ठोस सोना है! Upvotes! – jerhewet

+0

आईआईएस 6 में इसे हासिल करने का कोई अच्छा तरीका है? मुझे पता है कि यह सवाल से थोड़ा असंबंधित है, लेकिन यहां अकेले प्रश्न शीर्षक के कारण, मेरे जैसे लैंडिंग वाले किसी के लिए एक अच्छा संदर्भ होगा। –

0

हां, इसे किसी भी प्रकार की फाइलों के लिए बुलाया जाएगा।

यह उन मॉड्यूल में सामान्य है जो आप को पूर्व में रुचि नहीं रखते हैं। यह जांचकर कि HttpContext.Request.Url.AbsolutePath में SharePoint के अंतर्गत '/ _layouts' शामिल है या नहीं।

+0

वहाँ एक रास्ता ऐसा है कि वे केवल विशिष्ट एक्सटेंशन (aspx या ASMX या अपने कस्टम ashx तरह के लिए पाइप लाइन को झुका पाने मॉड्यूल कॉन्फ़िगर है)? – ram

+0

यह उत्तर ASP.NET विकास वेब सर्वर (कैसिनी) के लिए विशिष्ट है - आपका प्रश्न आईआईएस 7 और कैसिनी का उल्लेख करता है। कैसिनी सभी अनुरोधों को किसी भी HttpModules पर रूट करेगा।ध्यान दें IIS6 या IIS7 की तुलना में यह अलग व्यवहार है (प्रत्येक पर समान व्यवहार प्राप्त करने के लिए अलग-अलग कॉन्फ़िगरेशन की आवश्यकता है) – Adam

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