दिलचस्प पोस्ट
UIImage (contentsOfFile) कैश निर्देशिका में मौजूदा फ़ाइल के बावजूद नीला लौट रहा है हैशिंग मूल्यों का पासवर्ड हैशिंग, नमक और भंडारण stringByAppendingPathComponent अनुपलब्ध है थ्रेडिंग पूल मल्टी प्रोकक्शन पूल के समान है? डायनेमिक अर्रेइस्ट आइटम प्रकार के साथ जीएसन टाइपटोकन कस्टम शैलियों के साथ मैं डिफ़ॉल्ट PrimeFaces सीएसएस को ओवरराइड कैसे कर सकता हूं? MySQL AUTO_INCREMENT रोलबैक नहीं करता है आईफोन – ग्रांड सेंट्रल डिस्पैच मुख्य धागा एकाधिक तालिकाओं से एसक्यूएल क्वेरी रिटर्न डेटा कैसे हो सकता है क्रॉस-डोमेन अनुरोध (अंगुलर 2) कैसे बनाएं? सी # में टाइप करने के लिए स्ट्रिंग कन्वर्ट करें पायथन में समय बीत चुका है? कोणीय 2 – आंतरिक एचटीएमएल स्टाइलिंग क्लास अपने सुपर वर्ग के आवश्यक सदस्यों को लागू नहीं करता है डाटाबेसअरेरः वर्तमान लेन-देन को निरस्त किया गया है, लेन-देन ब्लॉक के अंत तक अनदेखा करने वाले आदेश

यूआरएल में डॉट्स 404 एएसपी.नेट एमवीसी और आईआईएस के साथ हैं

मेरे पास एक ऐसा प्रोजेक्ट है जिसकी आवश्यकता है कि मेरे यूआरएल के रास्ते में डॉट्स हैं उदाहरण के लिए मेरे पास एक यूआरएल हो सकता है जैसे www.example.com/people/michael.phelps

डॉट वाले यूआरएल 404 उत्पन्न करते हैं। मेरा रूटिंग ठीक है। यदि मैं डॉट के बिना, मैशेलपहेल्प्स में जाता हूं, तो सब कुछ काम करता है। अगर मैं डॉट जोड़ता हूं तो मुझे 404 त्रुटि मिलती है नमूना साइट IIS8 एक्सप्रेस के साथ विंडोज 7 पर चल रहा है। URLScan चल नहीं रहा है

मैंने अपने web.config में निम्नलिखित को जोड़ने की कोशिश की:

<security> <requestFiltering allowDoubleEscaping="true"/> </security> 

दुर्भाग्यवश कि कोई फर्क नहीं पड़ा। मुझे सिर्फ 404.0 प्राप्त नहीं हुई त्रुटि मिलती है

यह एक MVC4 परियोजना है लेकिन मुझे नहीं लगता कि यह प्रासंगिक है। मेरी अनुमार्गण ठीक काम करती है और मैं उन मापदंडों की अपेक्षा करता हूं, जब तक वे डॉट शामिल न करें

मुझे कॉन्फ़िगर करने के लिए मुझे क्या करना चाहिए ताकि मैं अपने यूआरएल में डॉट्स कर सकूं?

वेब के समाधान से एकत्रित समाधान "यूआरएल में डॉट्स 404 एएसपी.नेट एमवीसी और आईआईएस के साथ हैं"

मुझे अपनी साइट के एचटीटीपी संचालकों को संपादित करके यह काम मिला है मेरी ज़रूरतों के लिए यह अच्छी तरह से काम करता है और मेरी समस्या को हल करता है

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

उदाहरण के लिए .NET प्रक्रिया यूआरएल http://www.example.com/people/michael.phelps आपकी साइट के वेब। system.webServer / handlers में निम्न पंक्ति को जोड़ने के लिए प्रणाली के अंदर है। system.webServer / handlers तत्व:

 <add name="ApiURIs-ISAPI-Integrated-4.0" path="/people/*" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" /> 

संपादित करें

ऐसे अन्य पोस्ट हैं जो सुझाव दे रहे हैं कि इस समस्या का समाधान RAMMFAR या RunAllManagedModulesForAllRequests । इस विकल्प को सक्षम करने से सभी अनुरोधों के लिए सभी प्रबंधित मॉड्यूल सक्षम होंगे। इसका मतलब है कि स्थैतिक फाइल जैसे कि छवियां, पीडीएफ और बाकी सब कुछ एनआईटी द्वारा संसाधित किया जाएगा, जब उन्हें आवश्यकता नहीं होगी। यह विकल्प सबसे अच्छा छोड़ दिया जाता है जब तक कि आपके पास इसके लिए विशिष्ट मामला न हो।

कुछ पिक्सिंग के दौरान मुझे पता चला कि आराम से यूआरएल टोफाइल सिस्टममैपिंग मेरे लिए बिल्कुल भी काम नहीं करती थी, मेरे मामले में जो काम हुआ वह सही करने के लिए रैमफ़ार स्थापित कर रहा था, वही (। 4.0 4.0 + mvc3) और (4.5 4.5 mvc4) के लिए मान्य है।

 <system.webserver> <modules runAllManagedModulesForAllRequests="true"> 

RAMMFAR और प्रदर्शन के बारे में सच्चे हैन्सेलमेन पोस्ट को सेट करते समय जागरूक रहें

मेरा मानना ​​है कि आपको अपनी वेबसाइट पर आराम करने योग्य यूआरएलटोफ़ाइल सिस्टममैपिंग सेट करना होगा। हैक ने थोड़ी देर पहले इस बारे में एक लेख लिखा था (और कुछ अन्य ऐसे पद हैं जो एक ही प्रकार के प्रश्न पूछ रहे हैं)

 <system.web> <httpRuntime relaxedUrlToFileSystemMapping="true" /> 

बस यह खंड web.config में जोड़ें, और मार्ग / {* pathInfo} के सभी अनुरोध निर्दिष्ट हैंडलर द्वारा प्रबंधित किए जाएंगे, भले ही पथइन्फो में डॉट्स हों। (सर्विस स्टैक एमवीसी होस्ट वेब। कॉन्फ़िगर उदाहरण से लिया गया है और यह उत्तर https://stackoverflow.com/a/12151501/801189 )

आईआईएस 6 और 7 दोनों के लिए यह काम करना चाहिए। आप 'एड' तत्वों में पथ = "*" को संशोधित करके 'मार्ग' के बाद अलग-अलग तरीकों पर विशिष्ट संचालकों को असाइन कर सकते हैं

  <location path="route"> <system.web> <httpHandlers> <add path="*" type="System.Web.Handlers.TransferRequestHandler" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" /> </httpHandlers> </system.web> <!-- Required for IIS 7.0 --> <system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <validation validateIntegratedModeConfiguration="false" /> <handlers> <add name="ApiURIs-ISAPI-Integrated-4.0" path="*" type="System.Web.Handlers.TransferRequestHandler" verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" preCondition="integratedMode,runtimeVersionv4.0" /> </handlers> </system.webServer> </location> 

लाभ के बिना सभी विभिन्न उपचारों के बाद मैं लंबे समय तक इस मुद्दे पर फंस गया था।

मैंने देखा कि डॉट्स [।] वाले यूआरएल के अंत में आगे स्लैश [/] जोड़ते समय, उसने 404 त्रुटि नहीं फेंई और यह वास्तव में काम किया।

मैंने अंत में इस मुद्दे का हल IIS यूआरएल रीराइट जैसे एक यूआरएल रीलाइटर का उपयोग करके एक विशेष पैटर्न के लिए देखने और प्रशिक्षण स्लैश को जोड़ने के लिए किया।

मेरा यूआरएल इस तरह दिखाई देता है: /Contact/~firstname.lastname इसलिए मेरा पैटर्न बस है: /Contact/~(.*[^/$)$

मुझे स्कॉट फोर्सथ से यह विचार मिला है, नीचे दिए गए लिंक देखें: http://weblogs.asp.net/owscott/handing-mvc-paths-with-dots-in-the-path

आप समय के बजाय डैश का उपयोग करने के बारे में सोच सकते हैं।

प्रो एएसपी एमवीसी 3 फ्रेमवर्क में वे मैत्रीपूर्ण यूआरएल बनाने के बारे में सुझाव देते हैं:

प्रतीकों, कोड और वर्ण अनुक्रमों से बचें यदि आप एक शब्द विभाजक चाहते हैं, तो डैश (/ my-great-article) का उपयोग करें अंडरस्कोर अमित्र हैं, और यूआरएल-एन्कोडेड रिक्त स्थान विचित्र (/ मेरे + महान + आलेख) या घृणित हैं (/ मेरे% 20 ग्रेट% 20 कार्ट)

यह भी उल्लेख किया गया है कि यूआरएल मनुष्यों के लिए पढ़ने और बदलने में आसान होना चाहिए। हो सकता है कि डॉट के बजाय डैश का उपयोग करने के बारे में सोचने का एक कारण भी एक ही पुस्तक से आता है:

HTML पृष्ठों (.aspx या .mvc) के लिए फ़ाइल नाम एक्सटेंशन का उपयोग न करें, लेकिन उन्हें विशिष्ट फ़ाइल प्रकारों (.jpg, .pdf, .zip, आदि) के लिए उपयोग करें। वेब ब्राउज़र फाइल नाम एक्सटेंशन के बारे में परवाह नहीं करते हैं यदि आप MIME प्रकार को उचित रूप से सेट करते हैं, लेकिन मनुष्य अभी भी पीडीएफ फाइलों को समाप्त करने की उम्मीद करते हैं। पीडीएफ

इसलिए जब भी कोई समय मनुष्यों के लिए पठनीय है (हालांकि डैश के मुकाबले कम पठनीय, आईएमओ), इस अवधि के बाद आने वाली चीज़ों के आधार पर यह अभी भी थोड़ा भ्रमित / भ्रामक हो सकता है। अगर किसी के पास ज़िप का अंतिम नाम हो तो क्या होगा? फिर यूआरएल / जॉन-ज़िप के बजाय / जॉन.जिप होगा, कुछ ऐसा जो डेवलपर को भी भ्रामक हो सकता है जिसने आवेदन लिखा था।

उन लोगों के लिए सुपर आसान जवाब है जिनके पास केवल एक वेबपेज पर है। अपने एक्शन लिंक को संपादित करें और इसके अंत में + "/"

  @Html.ActionLink("Edit", "Edit", new { id = item.name + "/" }) | 

MVC 5.0 समाधान।

सुझाए गए उत्तरों में से कई MVC 5.0 में काम नहीं करते।

चूंकि पिछली खंड में 404 डॉट समस्या का निवारण किया जा सकता है उस अनुभाग को अनुगामी स्लैश के साथ बंद करके, यहां पर छोटी सी चाल का उपयोग मैं साफ और सरल कर रहा हूं।

आपके दृश्य में एक सुविधाजनक प्लेसहोल्डर रखते हुए:

 @Html.ActionLink("Change your Town", "Manage", "GeoData", new { id = User.Identity.Name }, null) 

काम करने के लिए एक छोटी सी jquery / javascript जोड़ें:

 <script> $('a:contains("Change your Town")').on("click", function (event) { event.preventDefault(); window.location.href = '@Url.Action("Manage", "GeoData", new { id = User.Identity.Name })' + "/"; });</script> 

कृपया अनुगामी स्लैश पर ध्यान दें, जो कि बदलने के लिए ज़िम्मेदार है

 http://localhost:51003/GeoData/Manage/user@foo.com 

में

 http://localhost:51003/GeoData/Manage/user@foo.com/ 

क्या आपकी यूआरएल संरचना बदलना संभव होगा?
मैं किसके लिए काम कर रहा था, इसके लिए मैंने एक मार्ग की कोशिश की

 url: "Download/{fileName}" 

लेकिन यह किसी भी चीज के साथ असफल रहा था इस में।

मैंने मार्ग को स्विच किया

  routes.MapRoute( name: "Download", url: "{fileName}/Download", defaults: new { controller = "Home", action = "Download", } ); 

अब मैं localhost:xxxxx/File1.doc/Download में डाल सकता हूं localhost:xxxxx/File1.doc/Download और यह ठीक काम करता है।

इस दृश्य में मेरे सहायकों ने भी उठाया

  @Html.ActionLink("click here", "Download", new { fileName = "File1.doc"}) 

जो localhost:xxxxx/File1.doc/Download लिए एक लिंक बनाता है localhost:xxxxx/File1.doc/Download प्रारूप भी है।

हो सकता है कि आप अपने रुख के अंत में "/ दृश्य" या क्रिया जैसे अनावश्यक शब्द डाल सकते हैं, ताकि आपकी प्रॉपर्टी / /mike.smith/view / /mike.smith/view / /mike.smith/view तरह पीछे की जा /mike.smith/view

ऊपर दिए गए सभी समाधानों की कोशिश की लेकिन उनमें से कोई भी मेरे लिए काम नहीं करता काम क्या था मैं .NET संस्करणों की स्थापना रद्द कर रहा था> 4.5, इसके सभी बहुभाषी संस्करणों सहित; आखिरकार मैंने नया संस्करण (केवल अंग्रेज़ी) संस्करण टुकड़ा करके जोड़ा। अभी मेरे सिस्टम पर स्थापित संस्करण यह है:

  • 2.0
  • 3.0
  • 3.5 4
  • 4.5
  • 4.5.1
  • 4.5.2
  • 4.6
  • 4.6.1

और यह अभी भी इस बिंदु पर काम कर रहा है। मुझे 4.6.2 स्थापित करने से डर लगता है क्योंकि यह सब कुछ गड़बड़ कर सकता है

तो मैं केवल अनुमान लगा सकता था कि 4.6.2 या सभी गैर-अंग्रेज़ी संस्करण मेरे कॉन्फ़िगरेशन को गड़बड़ रहे थे।

एचटीएच किसी को

मैं इस समस्या के अपने विशेष संस्करण को हल करने में सक्षम था ( https://cackoveroverflow.com/a/13082446/1454265 पर समाधान का उपयोग करके / से ग्राहक / ग्राहक के लिए मार्ग, स्लैश अनुमत नहीं किया गया था), और पथ का विकल्प = "*। html"।

चूंकि समाधान ऐसे प्रारूप में एन्कोडिंग पर विचार कर सकता है जिसमें प्रतीक नहीं है . , आधार64 के रूप में

जेएस में जोड़ा जाना चाहिए

 btoa(parameter); 

नियंत्रक में

 byte[] bytes = Convert.FromBase64String(parameter); string parameter= Encoding.UTF8.GetString(bytes); 
 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; namespace WebApplication1.Controllers { [RoutePrefix("File")] [Route("{action=index}")] public class FileController : Controller { // GET: File public ActionResult Index() { return View(); } [AllowAnonymous] [Route("Image/{extension?}/{filename}")] public ActionResult Image(string extension, string filename) { var dir = Server.MapPath("/app_data/images"); var path = Path.Combine(dir, filename+"."+ (extension!=null? extension:"jpg")); // var extension = filename.Substring(0,filename.LastIndexOf(".")); return base.File(path, "image/jpeg"); } } }