मैं निम्नलिखित (और इसी तरह) यूआरएल मेरी ASP.net MVC4/WebAPI परियोजना में काम करने के लिए प्राप्त करने के लिए कोशिश कर रहा हूँ:फ़ाइल-नाम के साथ ASP.net MVC4 WebAPI मार्ग में यह
http://127.0.0.1:81/api/nav/SpotiFire/SpotiFire.dll
मार्ग जिम्मेदार इस यूआरएल के लिए इस तरह दिखता है:
config.Routes.MapHttpRoute(
name: "Nav",
routeTemplate: "api/nav/{project}/{assembly}/{namespace}/{type}/{member}",
defaults: new { controller = "Nav", assembly = RouteParameter.Optional, @namespace = RouteParameter.Optional, type = RouteParameter.Optional, member = RouteParameter.Optional }
);
अगर मैं इसे हटा देता हूं तो यह ठीक काम करता है। फ़ाइल नाम में, या यदि मैं यूआरएल के पीछे एक स्लैश जोड़ता हूं, लेकिन इसका मतलब यह भी है कि मैं Url.Route
-methods आदि का उपयोग नहीं कर सकता हूं। मुझे जो त्रुटि मिलती है वह एक सामान्य 404-त्रुटि (नीचे छवि) है।
मैं अपने web.config को <httpRuntime targetFramework="4.5" relaxedUrlToFileSystemMapping="true" />
जोड़ने की कोशिश की है, और मैं भी
<compilation debug="true" targetFramework="4.5">
<buildProviders>
<remove extension=".dll"/>
<remove extension=".exe"/>
</buildProviders>
</compilation>
जोड़ने की कोशिश की है और यह से कोई भी काम करने लगता है। तो मेरा सवाल मूल रूप से है, मैं इस यूआरएल को काम करने के लिए कैसे प्राप्त कर सकता हूं, और सही तरीके से मानचित्र कर सकता हूं?
केवल मार्ग का अंतिम भाग वैकल्पिक हो सकता है। उदाहरण में आपने दिखाया है कि आपने परियोजना वैकल्पिक को छोड़कर सभी मार्ग पैरामीटर बनाए हैं जो स्पष्ट रूप से संभव नहीं है। यूआरएल में आपने दिखाया है कि आप यूआरएल के 'नेमस्पेस' और 'टाइप' भाग' खो रहे हैं। केवल 'सदस्य' भाग वैकल्पिक हो सकता है क्योंकि यह मार्ग के अंत में परिभाषित किया गया है। –
यह सच नहीं है, और यह बिना किसी समस्या के काम करने के लिए साबित हुआ है। आप जितना चाहें उतने हिस्सों को वैकल्पिक बना सकते हैं। उदाहरण के लिए, मेरे उत्तर में किए गए परिवर्तन से पहले, यूआरएल '/ एपीआई/एनवी/स्पोटीफायर' ने एक आकर्षण के रूप में काम किया था। – Alxandr