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

經過與微軟的大量溝通以及大量調試和評論代碼,我發現了這個問題。

這是由於糟糕的數據庫設置。 我在我的數據庫中有4個表引用它們自己作爲外鍵,從EF核心給了一個Stackoverflow異常。

刪除所有4並重建整個模型後,它工作。 感謝您的輸入

-1

添加一個或多個try-catch語句,以獲取有關產生異常的更多信息。然後使用該信息更新您的代碼以防止發生異常。

另外,請考慮查看Microsoft爲ASP.NET 2.0提供的修補程序。這ASP.NET 2.0 hotfix rollup package page引用可能適用於您的問題的一些問題。另一個選擇是升級到ASP.NET 3.5+,但我認爲你正試圖避免這種方法。

我希望這會有所幫助。

+0

這更是一個評論的那麼一個答案,因爲這樣你應該把它移動到我已經試過了評論部分 – gh9

+0

,它沒有受到任何嘗試捕捉。 我有沒有提到微軟尚未找到解決方案。 不知何故錯誤可能發生在msvsmon中 –

相關問題