1

これまでしばらくの間、この問題が発生しました。 新しいプロジェクトでエラーを再現しました。 私はすべてのunnessaryコードを削除している、そしてこのコードはまだ私にエラーを与えている:EntityFrameWorkコア(オーバーフロー例外)を呼び出すときにAspNetCore 2.0がクラッシュする

System.StackOverflowException occurred 
    HResult=0x800703E9 
    Source=<Cannot evaluate the exception source> 
    StackTrace: 
<Cannot evaluate the exception stack trace> 

私のプロジェクトでは、このコンテンツとStartup.csクラスで構成されています

public class Startup 
{ 
    public Startup(IConfiguration configuration) 
    { 
     Configuration = configuration; 
    } 

    public IConfiguration Configuration { get; } 

    public void ConfigureServices(IServiceCollection services) 
    { 
     services.AddDbContext<FrilivDB>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")).EnableSensitiveDataLogging()); 
     services.AddMvc(); 
    } 

    public void Configure(IApplicationBuilder app, IHostingEnvironment env) 
    { 
     app.UseMvc(routes => 
     { 
      routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}"); 
      routes.MapRoute("ViewProduct", "{brand}/{productTitle}", defaults: new { controller = "Products", action = "Details" }); 
     }); 
    } 
} 

マイProductscontrollerはこのようになります:

public class ProductsController : Controller 
{ 
    private readonly FrilivDB _context; 

    public ProductsController(FrilivDB context) 
    { 
     _context = context; 
    } 

    public async Task<IActionResult> Details(string brand, string productTitle) 
    { 
     var product = _context.Products.Select(p => p.Title); 
     return View(); 
    } 
} 

とデバッガにこのラインで渡すときにエラーが発生します。

var product = _context.Products.Select(p => p.Title); 

エラーは毎回15秒から30秒の間待った後に発生します。 いずれかのアイデアがありますか、同じことを体験しましたか?

これは私が出力ウィンドウに表示されるものです。

AO.Shop>  Request starting HTTP/1.1 GET http://localhost:44317/tatonka/alaska 
AO.Shop> info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1] 
AO.Shop>  Request starting HTTP/1.1 GET http://localhost:44317/tatonka/alaska 
AO.Shop> info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1] 
AO.Shop>  Executing action method AO.Shop.Controllers.ProductsController.Details (AO.Shop) with arguments (tatonka, alaska) - ModelState is Valid 
AO.Shop> info: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[1] 
AO.Shop>  Executing action method AO.Shop.Controllers.ProductsController.Details (AO.Shop) with arguments (tatonka, alaska) - ModelState is Valid 
AO.Shop> 
AO.Shop> Process is terminating due to StackOverflowException. 
+0

これは私が出力ウィンドウに表示されるものです。 ''' –

答えて

3

Microsoftと多くのデバッグとコメントのコードを出し入れした後、私は問題を発見しました。

DB設定が不良であったためです。 私は自分のDBに4つのテーブルを持っていて、EFコアからStackoverflow Exceptionを与えた外部キーとして自分自身を参照していました。

4つをすべて削除してモデル全体を再構築した後、それは機能しました。あなたの入力のための おかげ

-1

は、生成された例外に関する詳細情報を取得するために、1つの以上のtry-catchステートメントを追加します。その情報を使用してコードを更新し、例外が発生しないようにします。

また、MicrosoftがASP.NET 2.0用に持っているパッチを確認することを検討してください。このASP.NET 2.0 hotfix rollup package pageは、問題に適用されるいくつかの問題を参照しています。もう一つの選択肢はASP.NET 3.5+にアップグレードすることですが、私はあなたがそのアプローチを回避しようとしていると推測しています。

こちらがお役に立てば幸いです。

+0

これは、次のようなあなたは、私はそれを試してみましたコメント欄 – gh9

+0

に移動する必要があり、その後、コメントの回答の詳細です、それはどんな試合でもキャッチされません。 私は、Microsoftがこれについての解決策をまだ見つけていないと言及しました。 何とかmsvsmonでエラーが発生する可能性があります –

関連する問題