簡體   English   中英

iisexpress 崩潰由客戶端 web 瀏覽器觸發。 錯誤是“程序 iisexpress exe 已退出,代碼為 0xc0000005 訪問沖突”

[英]iisexpress crash triggered by the client web browser. The error is "the program iisexpress exe has exited with code 0xc0000005 access violation"

在開發 Web 應用程序時,web 客戶端上的一個按鈕開始使應用程序崩潰。

VS Debug seesion 和Client 瀏覽器靠在一起。 VS 2019 調試 output 顯示以下錯誤(客戶端或服務器上沒有其他信息可用):

The program '[23396] iisexpress.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'. 這會繞過所有 try/catch ,這使得調試變得困難。

由於無限遞歸調用,我收到此錯誤。
要查明此類錯誤,請添加斷點和日志行(或步入)!!!

就我而言,在某些情況下,get 屬性錯誤地返回了自身。

Visual Studio 調試會話的這種崩潰自然會關閉 Web 瀏覽器(由 VS 打開),這增加了混亂 就好像客戶端崩潰了。
只有當您將另一個瀏覽器會話連接到 localhost://nnnnn 時,您才會看到崩潰的是服務器。

當我在屬性 getter(IsRunning) 中調用系統方法 (Process.GetProcessById()) 時,我親身經歷過此錯誤消息。 Entity Framwork Core 在檢索屬性所在的 object 時訪問 getter,系統調用導致了錯誤消息。

public bool IsRunning
{   get
    {
        var exited = Process.GetProcessById(ProcessId).HasExited;
        return !exited;
    }
    set
   {
        IsRunning = value;
   }
}

這是事后諸葛亮,而不是腦筋急轉彎。 我更改為代碼:

public bool IsRunning { get; set; }

很簡單。 我選擇避免依賴 getter 來實現我想要的邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM