2013-05-26 14 views
7

webapiのサンプルコードをダウンロードしましたが、この例外が発生します Visual Studio 2012 Ultimateバージョンを使用してこのサンプルを開きました。 newtonsoftがインストールされました。このアプリケーションを実行するとこのエラーが発生します。正常にコンパイルされます。 なぜこのエラーが発生し、この例外を解決する方法があるのでしょうか。ここで メソッドが見つかりません 'Void Newtonsoft.Json.Serialization.DefaultContractResolver.set_IgnoreSerializableAttribute(Boolean)

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: 

は私がNuGet from this post、 ための「プレリリースを含める」をオンにする必要があることを知るようになったことが

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の「プレリリースを含める」?

答えて

9

NuGetの「プレリリースを含める」をオンにするにはどうすればよいですか? でJson.NETをインストールするには

「プレリリースを含める」、あなたはGAC内の古いバージョンを持っている場合には、この別の原因はできthe Package Manager Console

Install-Package Newtonsoft.Json –IncludePrerelease 
2

で次のコマンドを実行します。私の場合、バージョンは.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 そのバージョンが私のGACに元々あった理由はわかりません。希望は助けます – PatrickWalker

1

私の場合私はRouteConfigで次の行を削除しています(既に消滅しました)。

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

VS2012ではこれで十分です。

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

コントローラの確認が必要な場合もあります。 RouteConfigで何があったかわからない場合は、クラスリファレンスも削除してください。

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

受け入れられた答えは私のために働かなかったが、これをRouteConfigから削除しました。しかし、これを削除しても問題が発生しないことを示す文書がありますか? – Chad

関連する問題