2012-02-22 4 views
7

मुझे आज सुबह स्थानीयहोस्ट में एएसपी.नेट एमवीसी 2 साइट पर एक सीएसएस फ़ाइल पर 302 त्रुटि लौटा रही है और मुझे नहीं पता कि क्या होगा इसका कारण बन गया है।एएसपी.नेट एमवीसी: सीएसएस फ़ाइल 302 त्रुटि लौट रही है जब यह

लोकलहोस्ट साइट आईआईएस 7.5 का उपयोग करती है, हालांकि मेरे पास आईआईएस के साथ सीमित अनुभव है, इसलिए मैंने वहां क्या हो सकता है, इस बारे में बहुत कुछ नहीं देखा है।

यूआरएल सीएसएस फ़ाइल के लिए है:

http://localhost/MySite/Content/Site.css?v=16 

और प्रतिक्रिया पर स्थान हेडर कुछ इस तरह दिखता है:

/MySite/Account/Login?ReturnUrl=%MySite%2fContent%2fSite.css%3fv%3d16&v=16 

यह मैं लगता है कि MVC स्थिर फ़ाइल या कुछ और रीडायरेक्ट हो रहा है बनाता है इस तरह, हालांकि अगर यह मामला था, तो मैं उम्मीद करता हूं कि मेरी सभी छवियां, सीएसएस और जावास्क्रिप्ट फाइलें वही होंगी जो वे नहीं हैं। , अगर मैं Site2.css करने के लिए अपने सीएसएस फ़ाइल और संदर्भ है कि इसके बजाय, एक ही बात होता है का नाम बदलने के

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute("", "Account/{action}/", new { controller = "Account" }); 
    routes.MapRoute("", "{action}", new { controller = "Home", action = "Index" }); 

    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults    
    ); 

    routes.MapRoute(
     "Error", 
     "{*url}", 
     new { controller = "Home", action = "ResourceNotFound" } 
    ); 
} 

इसके अलावा: बस के मामले में, यहाँ Global.ascx में RegisterRoutes() का एक सरलीकृत संस्करण है।

क्या चल रहा है?

उत्तर

8

लॉगऑन विधि पर रीडायरेक्ट ऐसा लगता है कि यह किसी एमवीसी मार्ग को पकड़ने के बजाय निर्देशिका या फ़ाइल पर अनुमतियों के कारण ऐसा लगता है। (यदि इसे एक एमवीसी मार्ग से पकड़ा गया था, तो संभवतः यह निर्धारित करने में त्रुटि होगी कि कौन सा नियंत्रक और/या क्रिया का उपयोग करना है।)

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

+1

अहह यह लिया गया है। यह संपूर्ण सामग्री निर्देशिका के बजाय उस विशिष्ट सीएसएस फ़ाइल पर एक अनुमति समस्या थी (जो सभी स्थिर सामग्री के लिए एक ही चीज़ होती थी)। फिर भी सुनिश्चित नहीं है कि उन अनुमतियों को कैसे बदला गया था। उस खाते को अधिकार देना जो ऐपपूल प्राधिकरण के लिए उपयोग कर रहा था, इस मुद्दे को हल करता है। – ajbeaven

+0

मेरे पास एक ही समस्या थी और फ़ाइल पर ही अनुमति थी, न केवल निर्देशिका। – EtienneT

+1

मैंने पहले से ही चेक किया है, इस जवाब ने मुझे फिर से जांच की है .. मेरा सिर्फ फाइल पर नहीं था, लेकिन उसने मुझे 5 वें समय के लिए अनुमतियों की समीक्षा की क्योंकि यह पुष्टि की गई कि मैंने क्या सोचा था .. मेरे मामले में मेरे तुलनात्मक माहौल ने "उपयोगकर्ताओं को थप्पड़ मार दिया "साइट फ़ोल्डर पर समूह। यह नहीं कहेंगे कि यह एक बेहतरीन प्रथा है, यह सिर्फ उस समूह के रूप में हुआ जहां पर्यावरण गुम था। आईयूएसआर का उपयोग सीधे पाठ्यक्रम के रूप में किया लेकिन मैंने उन्हें भ्रम को रोकने के लिए मिलान किया। – Tony

8

ऐसा लगता है कि web.config में प्रमाणीकरण नियम कह रहे हैं कि आपको सीएसएस पृष्ठों को देखने के लिए प्रमाणित होना होगा। आपको साबित करने में सक्षम होना चाहिए कि लॉग इन करके और देखकर कि क्या आप सीएसएस फ़ाइल को सही तरीके से सेवा दे सकते हैं।

मैं सामग्री निर्देशिका पर प्राधिकरण आवश्यकता को हटाने के लिए web.config पर एक स्थान अनुभाग जोड़ूंगा। http://support.microsoft.com/kb/316871

<!-- This section gives the unauthenticated user access to all of the files that are stored in the Content folder. --> 
<location path="content"> 
<system.web> 
    <authorization> 
     <allow users ="*" /> 
    </authorization> 
</system.web> 
</location> 
+0

+1 अच्छा विचार। मैं इसे भी लागू करूंगा। – ajbeaven

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