2012-05-30 17 views
8

मुझे उन मार्गों के साथ परेशानी हो रही है जब उनमें कुछ फ़ाइल एक्सटेंशन शामिल नहीं हैं। मुझे संदेह है कि यह आईआईएस समस्या हो सकती है लेकिन मैं इसे ट्रैक नहीं कर सकता।Asp.net एमवीसी रूटिंग कुछ फ़ाइल एक्सटेंशन से मेल नहीं खाता

सबसे पहले, मैं RouteExistingFiles बंद कर दिया:

routes.RouteExistingFiles = false; 

और फिर मैं निम्नलिखित मार्ग है:

routes.MapRoute("", "category/{category}.aspx", new { controller = "Category", action = "View" }); 

और निम्न URL इस मार्ग से मेल नहीं खाता:

http://mysite/category/test.aspx 

लेकिन, यदि मैं फ़ाइल एक्सटेंशन को हटाता हूं और मार्ग को इस प्रकार व्यवस्थित करता हूं:

routes.MapRoute("", "category/{category}", new { controller = "Category", action = "View" }); 

फिर ऊपर यूआरएल के साथ {} श्रेणी मैं भी इस मार्ग के साथ एक ही समस्या है "test.aspx"

करने के लिए सेट किया जा रहा से मेल खाता है:

routes.MapRoute("sitemap", "sitemap.xml", new { controller = "Resource", action = "Sitemap" }); 

अजीब बात यह है कि मैं फ़ाइल एक्सटेंशन के साथ सभी मार्गों के साथ यह समस्या नहीं है। निम्नलिखित मार्गों मेरे लिए बस ठीक काम कर रहा हो रहे हैं:

routes.MapRoute("", "favicon.ico", new { controller = "Resource", action = "Favicon" }); 
routes.MapRoute("", "min.css", new { controller = "Resource", action = "Css" }); 
routes.MapRoute("", "min.js", new { controller = "Resource", action = "JavaScript" }); 
routes.MapRoute("", "rsd.xml", new { controller = "MetaWeblog", action = "Rsd" }); 

वहाँ कुछ है मैं .aspx और .xml एक्सटेंशन के साथ के बारे में पता होना चाहिए? क्या यह आईआईएस समस्या हो सकती है? क्या RouteDebugger का उपयोग करने से इसे डीबग करने का कोई बेहतर तरीका है?

+0

aspx मार्गों आपके द्वारा बनाए गए एप्लिकेशन आईआईएस 7 – VJAI

+0

में चल रहा एक ऐसी ही मुद्दा है और यदि आप एक समाधान पाया सोच है के साथ अपने बॉक्स में काम कर रहे हैं? – DDiVita

उत्तर

1

क्या आपकी समस्या यह है कि अनुरोध में उन क्रियाओं को निर्देशित नहीं किया जा रहा है यदि url में .xml या .aspx है?

तो

मुझे लगता है कि यह सच हो सकता है,

routes.RouteExistingFiles = true; 

अद्यतन:

मैं एक साइट के लिए निम्नलिखित मार्ग के साथ दो स्थितियों में परीक्षण किया IIS में 7.

routes.MapRoute("sitemap", "{sitemap}.xml", 
        new { controller = "Resource", action = "Sitemap" }); 
चल

RouteExistingFiles के साथ झूठा है,

इस मामले में जब sitemap.xml फ़ाइल है तो अनुरोध उस फ़ाइल को निर्देशित किया जाता है, अनुरोध अनुरोध को निर्देशित किया जाता है। जब sitemap.xml फ़ाइल मौजूद है या नहीं हर समय अनुरोध कार्रवाई करने का निर्देश दिया जा रहा है

RouteExistingFiles के साथ,

सच है।

+2

यूआरएल में मेल खाने वाली फाइलें डिस्क पर मौजूद नहीं हैं इसलिए वे मौजूदा फाइलों के रूप में योग्य नहीं हैं। मैं चाहता हूं कि ये पथ नियंत्रक कार्यों पर जाएं, स्थिर फाइलों को पूरा न करें। –

0

मैं बस इस मुद्दे में भाग गया। मेरे लिए, उन फ़ाइलों के लिए रूटिंग नहीं की जा रही थी जिनमें प्रबंधित हैंडलर नहीं हैं। निम्नलिखित विन्यास मेरे लिए काम किया:

<system.webServer> 
    <modules> 
    <remove name="UrlRoutingModule-4.0" /> 
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" /> 
    </modules> 
</system.webServer> 
संबंधित मुद्दे