2013-05-26 15 views
7

मैं WebAPI के लिए एक नमूना कोड डाउनलोड किया है और मैं इस अपवाद हो रही है मैं 2012 अंतिम संस्करण दृश्य स्टूडियो का उपयोग कर इस नमूने खोला और मैं के नवीनतम verion है newtonsoft स्थापित। जब मैं इस एप्लिकेशन को चलाता हूं तो मुझे यह त्रुटि मिल रही है। यह सफलतापूर्वक संकलित है। कोई भी विचार क्यों यह त्रुटि और इस अपवाद को हल करने का कोई तरीका है।विधि नहीं मिला 'शून्य Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute (बूलियन)

System.MissingMethodException was unhandled by user code 
    HResult=-2146233069 
    Message=Method not found: 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)'. 
    Source=System.Net.Http.Formatting 
    StackTrace: 
     at System.Net.Http.Formatting.JsonContractResolver..ctor(MediaTypeFormatter formatter) 
     at System.Net.Http.Formatting.JsonMediaTypeFormatter..ctor() 
     at System.Net.Http.Formatting.MediaTypeFormatterCollection.CreateDefaultFormatters() 
     at System.Net.Http.Formatting.MediaTypeFormatterCollection..ctor() 
     at System.Web.Http.HttpConfiguration.DefaultFormatters() 
     at System.Web.Http.HttpConfiguration..ctor(HttpRouteCollection routes) 
     at System.Web.Http.GlobalConfiguration.<.cctor>b__0() 
     at System.Lazy`1.CreateValue() 
     at System.Lazy`1.LazyInitValue() 
     at System.Lazy`1.get_Value() 
     at System.Web.Http.GlobalConfiguration.get_Configuration() 
     at System.Web.Http.RouteCollectionExtensions.MapHttpRoute(RouteCollection routes, String name, String routeTemplate, Object defaults, Object constraints, HttpMessageHandler handler) 
     at System.Web.Http.RouteCollectionExtensions.MapHttpRoute(RouteCollection routes, String name, String routeTemplate, Object defaults) 
     at WebAPIRc.RouteConfig.RegisterRoutes(RouteCollection routes) in c:\Users\viemon\Downloads\WebAPIRc\WebAPIRc\WebAPIRc\App_Start\RouteConfig.cs:line 17 
     at WebAPIRc.WebApiApplication.Application_Start() in c:\Users\viemon\Downloads\WebAPIRc\WebAPIRc\WebAPIRc\Global.asax.cs:line 36 
    InnerException: 

यहाँ कोड है, जहां यह विफल रहता है

public class RouteConfig 
    { 
     public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
      //Exception error start 
      routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
      //exception error end 

      routes.MapRoute(
       name: "Default", 
       url: "{controller}/{action}/{id}", 
       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
      ); 
     } 
    } 

मुझे पता है कि मैं NuGet from this post, के लिए "प्री-रिलीज़ शामिल करें" चालू करने की आवश्यकता आ गया है, लेकिन मैं कैसे चालू करने के लिए कैसे चालू करूं NuGet के लिए "Prerelease शामिल करें"?

उत्तर

9

NuGet के लिए "प्रीरलीज़ शामिल करें" को चालू करने के तरीके को कैसे चालू किया जाए?

में the Package Manager Console

Install-Package Newtonsoft.Json –IncludePrerelease 
2

इस का एक अन्य कारण निम्न आदेश "प्री-रिलीज़ शामिल करें", चलाने के साथ Json.NET स्थापित करने के लिए किया जा सकता है यदि आप अपने GAC में एक पुराने संस्करण है। मेरे लिए संस्करण .NET 4.0 GAC में था, इस समस्या को हल करने के लिए

+0

आउटपुट शब्दाडंबर निर्धारित कर सकते हैं क्या आप इसके बारे में अधिक जानकारी दे सकते हैं? –

+0

अरे, मैं अपना दिमाग वापस कर रहा हूं लेकिन मुझे लगता है कि मेरे .NET4 Gac में एक संस्करण था जिसे यहां पहचाना जा सकता है http://stackoverflow.com/questions/6925043/where-is-gacutil-for-net-framework -4-0-in-windows-7 और मुझे इसे हटाना पड़ा ताकि रनटाइम नया संस्करण https://msdn.microsoft.com/en-us/library/zykhfde0(v=vs.110 उठाएगा) .aspx मुझे नहीं पता कि यह संस्करण मूल रूप से मेरे जीएसी में क्यों था। उम्मीद है कि – PatrickWalker

1

मेरे मामले में आप रूटऑनफिग में निम्न पंक्ति को हटा दें (यह पहले से ही समाप्त हो चुका था)।

//Exception error start 
    routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "api/{controller}/{id}", 
     defaults: new { id = RouteParameter.Optional } 
    ); 
    //exception error end 

वीएस2012 में, यह पर्याप्त होना चाहिए।

 routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

आपको अपने नियंत्रक को सत्यापित करने की भी आवश्यकता हो सकती है। रूट कॉन्फिग में कुछ क्लास संदर्भ भी हटाएं, अगर आपको यकीन नहीं है कि वे क्या चाहते हैं। मेरे मामले में मैं बस को बनाए रखने के लिए इन दो:

using System.Web.Mvc; 
using System.Web.Routing; 

एक अन्य समाधान है अगर आप चाहते हैं और एक समय क्या संघर्ष का कारण बनता है यह पता लगाने के लिए है, तो आप अपने प्रोजेक्ट का निर्माण विस्तृत (Go to Tools-> Options -> Project and Solutions -> Build and Run -> MSBuild project build output verbosity) and upon build check your logs.

+0

मदद करता है स्वीकार्य उत्तर मेरे लिए काम नहीं करता है लेकिन रूट कॉन्फिग से इसे हटा रहा है। लेकिन क्या आपके पास कोई दस्तावेज है जो बताते हैं कि इसे हटाने से लाइन के नीचे कोई समस्या नहीं आएगी? – Chad

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