2015-11-13 10 views
5

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

HTTP अनुरोध लाइन है:

User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4 

बाकी सब कुछ है 100% एक ही:

User-Agent: Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Safari/537.36 

साथ विफल: साथ

PUT http://localhost/API/es/us/havana/club/tickets/JiWOUUMxukGVWwVXQnjgfw%7C%7C214 HTTP/1.1 

काम करता है।

+0

कैसे इसे विफल करता है? लौटाया गया स्टेटस कोड क्या है? सर्वर पक्ष पर कोई त्रुटि ट्रेस? – fiddler

+0

'/ एपीआई' एप्लिकेशन में सर्वर त्रुटि। पथ में अवैध पात्र। ArgumentException: पथ में अवैध पात्र।] System.IO.Path.CheckInvalidPathChars (स्ट्रिंग पथ, बूलियन चेक अतिरिक्त) +13766780 System.IO.Path.GetExtension (स्ट्रिंग पथ) +28 सिस्टम.Web.WebPages.DefaultDisplayMode.TransformPath (स्ट्रिंग virtualPath, स्ट्रिंग प्रत्यय) +49 System.Web.WebPages.DefaultDisplayMode.GetDisplayInfo (HttpContextBase HttpContext, स्ट्रिंग virtualPath, Func'2 virtualPathExists) +33 System.Web.WebPages.DisplayModeProvider.GetDisplayInfoForVirtualPath (स्ट्रिंग virtualPath, HttpContextBase, .. – user2105237

+0

मुझे यह स्पष्ट करने दें कि समस्या फिडलर से असंबंधित प्रतीत नहीं होती है। मैंने अभी कॉल का पता लगाने के लिए फिडलर का उपयोग किया था। – user2105237

उत्तर

3

मेरे मामले में, मूल कारण एमवीसी के एकाधिक दृश्य और प्रदर्शन मोड प्रदाता थे। यह एमवीसी ऐप्स को जादुई रूप से डिवाइस-विशिष्ट विचारों को लेने की अनुमति देता है; जैसे custom.cshtml customer.mobile.cshtml

यह लेख कार्यक्षमता का एक अच्छा विवरण के रूप में अच्छी तरह से है के रूप में विवरण है कि यह कैसे बंद करना: https://msdn.microsoft.com/en-us/magazine/dn342866.aspx

मैं Microsoft.AspNet.WebPages पैकेज जोड़कर इस तय अपने प्रोजेक्ट और मेरे स्टार्टअप में इस कोड के लिए एक कॉल जोड़ने के लिए (Application_Start Global.asax में या यदि Owin का उपयोग कर, विधि डब्ल्यू/OwinStartup विशेषता decordated):

public static void RegisterDisplayModes() 
{ 
    // MVC has handy helper to find device-specfic views. Ain't no body got  time for that. 
    dynamic modeDesktop = new DefaultDisplayMode("") { ContextCondition = (c => { return true; }) }; 
    dynamic displayModes = DisplayModeProvider.Instance.Modes; 
    displayModes.Clear(); 
    displayModes.Add(modeDesktop); 
} 
संबंधित मुद्दे