none
程式出現【嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀】錯誤! RRS feed

  • 問題

  • 不知道各位大大是否曾遇過此情形,該如何下手debug起?

    System.AccessViolationException 未處理
      Message="嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。"
      Source="System.Data.SqlServerCe"
      StackTrace:
           於 System.Data.SqlServerCe.NativeMethods.SafeRelease(IntPtr& ppUnknown)
           於 System.Data.SqlServerCe.SqlCeDataReader.Dispose(Boolean disposing)
           於 System.Data.SqlServerCe.SqlCeDataReader.Finalize()
    2008年8月26日 上午 06:09

所有回覆

  • 同常這類錯誤會發生在底層的 API ,我們大概沒辦法直接除錯,我都是發問題給 CSS 處理,這類通常會要配合小的 Test 專案,然後做 Memory Dump 後,上傳給 CSS ,上傳量可能 100 mb 左右吧...

     

    2008年8月26日 上午 06:40
  • 大大您好,小弟才疏學淺,請教一下CSS是??如何做Memory Dump?謝謝!
    2008年8月26日 上午 07:13
  • CSS 是微軟客戶支援服務處,就是 http://support.microsoft.com/ ,5 個問題 37,500 。

     

    2008年8月26日 上午 10:23
  • HI,

     

    這種狀況出現在.NET內部, 有可能是沒有安裝好的問題, 您可以考慮找另外一台電腦來試, 或是重新安裝再試試看/

     

    tihs

    2008年8月27日 上午 06:30
  • tihs大大:
      您是指重新安裝程式還是.NET 2.0呢?因為在開發時,我個人電腦就出現這問題,USER安裝測試時,有些人會有這種情形,有些則不會?這樣好難發現問題在哪??請教一下,若自己寫了一個DLL,需要寫Close()或Dispose()嗎?應用程式常會呼叫此DLL中的Method,DLL中有宣告static變數,這樣似乎很佔記憶體?
    2008年8月27日 上午 10:07
  •  心冷熱情熄 寫信:

    這邊有個範例:

    http://tlcheng.spaces.live.com/Blog/cns!145419920BFD55A7!2324.entry

     

    感謝大大。

    2008年8月27日 下午 03:59
  • HI,

     

    如果您的程式會呼叫自己寫的DLL, 有可能錯誤是出現在自行開發的DLL中

     

    tihs

    2008年8月28日 上午 02:41
  •  tihs 寫信:

    HI,

     

    如果您的程式會呼叫自己寫的DLL, 有可能錯誤是出現在自行開發的DLL中

     

    tihs


    tihs大大:
      我發現程式會掛在呼叫dll中針對SQLCE IO的動作,此方法會對資料庫的某TABLE先做DELETE,再用迴圈做INSERT DATA,大概執行幾次之後,就掛了,用Microsoft SQL Server Management Studio開啟sdf時,出現以下錯誤訊息。
    不知到您有遇過此情形嗎?

    標題: Microsoft SQL Server Management Studio
    ------------------------------

    無法擷取此要求的資料。 (Microsoft.SqlServer.SmoEnum)

    如需說明,請按一下: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476

    ------------------------------
    其他資訊:

    SQL Server Compact Edition 等待鎖定逾時。預設的鎖定時間為 2000ms。使用 ssce: 預設鎖定逾時屬性,可以增加連接字串中的預設鎖定逾時。 [ Session id = 11,Thread id = 0,Process id = 0,Table name = {4AD49915-2590-4503-8D2C-B99E95C80AA8},Conflict type = x lock (x blocks),Resource = DDL ] (SQL Server Compact Edition ADO.NET Data Provider)

    ------------------------------
    按鈕:

    確定
    ------------------------------

    2008年8月28日 上午 09:14