2015-08-12 10 views
7

का उपयोग नहीं कर सकता है मुझे माइक्रोसॉफ्ट.एस्पनेट.एबएपीआई क्लाइंट और माइक्रोसॉफ्ट.एस्पनेट.एबएपीआई को अपग्रेड करने के लिए मजबूर किया गया है। संस्करण 5.0.0.0 से 5.2.0.0 तक किसी अन्य प्रोजेक्ट पर निर्भरता के कारण और अब मेरा एपीआई त्रुटि फेंक रहा है "एक सीधा मार्ग पैरामीटर 'नियंत्रक' का उपयोग नहीं कर सकता है। नियंत्रक के लिए मार्ग बनाने के लिए इस पैरामीटर के स्थान पर एक शाब्दिक पथ निर्दिष्ट करें"।WebApi में अपग्रेड करें। कोर त्रुटि - एक सीधा मार्ग पैरामीटर 'नियंत्रक'

त्रुटि Global.asax.cs भीतर HttpConfiguration की initialisation पर फेंक दिया जाता है जब

GlobalConfiguration.Configure(WebApiConfig.Register); 

ऐसा नहीं है कि समस्या का कारण है कोर पुस्तकालय प्रतीत हो रहा है बुला। जब मैंने केवल क्लाइंट को अपडेट किया तो उसने त्रुटि फेंक नहीं दी।

मैंने देखा कि यदि मैं परियोजना के भीतर सभी नियंत्रकों से मार्ग विशेषताओं पर टिप्पणी करता हूं तो यह अब त्रुटि को फेंकता नहीं है, उदा।

[Route("api/storage/series/{series}/documentId/{documentId}")] 

हालांकि इन्हें हटाने से निर्भर अनुप्रयोगों की संख्या के कारण एक व्यवहार्य समाधान नहीं है।

Google पर/त्रुटि को बिंग करने पर उस पर बहुत अधिक उपयोगी उपयोगी जानकारी है। क्या कोई इस त्रुटि पर कोई अंतर्दृष्टि प्रदान कर सकता है और सुझाव दे सकता है कि मैं इसे ठीक करने के बारे में कैसे जा सकता हूं?

उत्तर

15

यह पता लगाया, या बल्कि मेरे सहयोगी ने किया। अगर आप त्रुटि को देखते हैं तो यह स्पष्ट प्रतीत होता है। यह हमारे कुछ नियंत्रकों पर रूट विशेषताओं के कारण था (केवल उदाहरण में मैंने जो उदाहरण इस्तेमाल किया था) जिसमें {नियंत्रक} शामिल है। जैसे

[Route("api/{controller}/editGroups")] 

इसे बदलने के रूप में नीचे दिखाया गया है, हार्डकोडेड नियंत्रक नाम का उपयोग करने, समस्या तय।

[Route("api/documents/editGroups")] 
+0

गलतफहमी से बचने के लिए: "ASP.NET कोर वेब अनुप्रयोग" में, कम से कम नेट कोर 2.0 में, एक * * "रूट" में एक नियंत्रक प्लेसहोल्डर उपयोग कर सकते हैं गुण, लेकिन * वर्ग * ब्रैकेट के साथ। उदाहरण के लिए '[रूट (" एपीआई/[नियंत्रक]/संपादित समूह ")]' –

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