Đã cố đọc hoặc ghi bộ nhớ được bảo vệ. Đây thường là một dấu hiệu cho thấy bộ nhớ khác bị hỏng


144

Tôi hy vọng ai đó có thể khai sáng cho tôi về những gì có thể gây ra lỗi này:

Đã cố đọc hoặc ghi bộ nhớ được bảo vệ. Đây thường là một dấu hiệu cho thấy bộ nhớ khác bị hỏng.

Tôi thực sự không thể đăng mã vì lỗi này dường như bị ném vào bất kỳ khu vực ngẫu nhiên nào của ứng dụng. Ứng dụng sẽ chạy bất cứ nơi nào từ 12-48 giờ trước khi ném lỗi. Đôi khi, nó sẽ dừng ở một điểm có vẻ ngẫu nhiên và gây ra lỗi ở trên, lần khác toàn bộ ứng dụng dừng lại và tôi nhận được một màn hình có lỗi thông báo "Có lỗi nghiêm trọng trong ... Đây có thể là một lỗi nghiêm trọng lỗi trong CLR hoặc ... "một cái gì đó về PInvoke hoặc thông tin không liên quan khác. Khi điều này xảy ra, tất cả các chủ đề hiển thị bị chấm dứt và không có thông tin gỡ lỗi có sẵn.

Tóm lại, đây là những gì ứng dụng làm:

Đây là một ứng dụng máy chủ đa luồng được viết hoàn toàn bằng C #. Khách hàng kết nối với máy chủ thông qua ổ cắm. Máy chủ chạy một "môi trường" ảo cho các máy khách nơi chúng có thể tương tác với nhau và môi trường. Nó tiêu tốn khá nhiều bộ nhớ nhưng tôi không thấy nó bị rò rỉ. Nó thường tiêu thụ khoảng 1,5 GB. Tôi không nghĩ nó bị rò rỉ vì việc sử dụng bộ nhớ vẫn tương đối ổn định trong toàn bộ thời gian ứng dụng đang chạy. Mã liên tục chạy của nó để duy trì môi trường ngay cả khi khách hàng không làm gì cả. Nó không sử dụng phần mềm của bên thứ 3 hoặc các API khác. Tài nguyên bên ngoài duy nhất mà ứng dụng này sử dụng là kết nối ổ cắm và kết nối cơ sở dữ liệu SQL. Nó chạy trên máy chủ 64 bit. Tôi đã thử gỡ lỗi này trong VS2008 & VS2010 bằng cách sử dụng .net 2.0, 3.5 và 4.

Tôi đã thử tắt tối ưu hóa trình biên dịch và một số bản sửa lỗi nóng microsoft. Dường như không có gì làm cho vấn đề này biến mất. Nó sẽ được đánh giá cao nếu bất cứ ai biết bất kỳ nguyên nhân có thể, hoặc một số cách để xác định những gì gây ra vấn đề.


vui lòng gửi toàn bộ cuộc gọi ...
Mitch Wheat


Khoảng một nửa thời gian tôi không thể có được ngăn xếp cuộc gọi. Nếu nó ném lỗi thực thi nghiêm trọng thì không có thông tin sửa lỗi nào cả. Thời gian mà nó thực sự dừng lại ở đâu đó trong mã, không có gì bất thường. Tôi thậm chí đã trải qua tất cả các chủ đề đang hoạt động và chưa thấy bất cứ điều gì có thể gây ra xung đột. Tôi cho rằng tham nhũng bộ nhớ đã xảy ra một thời gian trước khi nó gây ra lỗi.
Ai đó khác

Kiểm tra các thành phần COM và ActiveX cũ đang sử dụng. Tôi cũng biết SQLCE craps outs như thế này trong một môi trường đa luồng.
leppie

Không có thành phần COM hoặc ActiveX.
Ai đó khác

Câu trả lời:


50

Tôi vừa gặp vấn đề này trong VS 2013 .NET 4.5 với một MapInfo DLL. Hóa ra, vấn đề là tôi đã thay đổi Nền tảng cho Build từ x86 thành Bất kỳ CPU nào và điều đó đủ để gây ra lỗi này. Thay đổi nó trở lại x86 đã thực hiện thủ thuật. Có thể giúp ai đó.


1
Làm thế nào bạn thay đổi nó trở lại với x86. Tôi chỉ gặp vấn đề tương tự với hướng dẫn này CSingleLock lock(&m_csMember, TRUE);. Để biết thêm chi tiết, đây là bài viết của tôi
ABCmo

Trong VS 2012/2013, đi đến Thuộc tính dự án-> Xây dựng và thay đổi "Mục tiêu nền tảng" thành bất cứ điều gì bạn cần. Mặc dù tôi nghĩ rằng có một nơi khác mà bạn có thể thay đổi điều này, nhưng dường như tôi không thể tìm thấy nó, tôi nghĩ một trong hai cách sẽ đạt được kết quả tương tự.
Sergey

Tôi thực sự đang sử dụng VS 2013 và nó được định cấu hình là x86: /
ABCmo

1
Vấn đề của bạn có thể được gây ra bởi nhiều thứ, tôi thực sự ngạc nhiên rằng tôi đã khắc phục vấn đề của mình bằng cách thay đổi nền tảng xây dựng. Bạn có thể nói một lối thoát may mắn.
Serge

Giải pháp này kết hợp với câu trả lời này đã giải quyết nó cho tôi.
Zach Posten

23

Tôi cũng gặp phải vấn đề này với Visual Studio (VS) 2010. Thú vị hơn, tôi đã có một vài dự án trong giải pháp của mình (ứng dụng Console, ứng dụng WPF, ứng dụng Windows Forms) nhưng chỉ thất bại khi tôi cài đặt loại "Ứng dụng Console" của dự án là dự án khởi động của giải pháp (Ngay cả đối với những dự án không có mã hoặc bất kỳ tập hợp bổ sung nào được gọi ngoài các dự án mặc định đi kèm với chính mẫu dự án).

Sau sự thay đổi cuối cùng đã giúp tôi đinh xuống vấn đề: Đến bất động sản dự án của dự án giao diện điều khiển ứng dụng (Hoặc, chọn tập tin dự án trong solution explorer và nhấn Alt+ Entertổ hợp phím) -> Đến Debugtab -> Di chuyển đến Enable Debuggersmục trong cửa sổ bên phải -> Kiểm tra các Enable unmanaged code debugginghộp kiểm tra như trong ảnh chụp dưới đây -> Click vào Floppynút trên thanh công cụ để tiết kiệm tài sản của dự án. Nguyên nhân gốc rễ tại sao nó xảy ra vẫn chưa được biết đến với tôi. Điều duy nhất tôi quan sát được là có rất nhiều bản cập nhật Windows đã được cài đặt trên máy của tôi vào đêm hôm trước, phần lớn được cấu thành từ các bản cập nhật văn phòng và cập nhật hệ điều hành (Hơn một tá bài viết KB).

nhập mô tả hình ảnh ở đây

Cập nhật : VS 2017 trở đi, tên cài đặt đã thay đổi như trong ảnh chụp màn hình bên dưới:

nhập mô tả hình ảnh ở đây


1
Kể từ VS 2017, nó đã được đổi tên thành " Bật gỡ lỗi mã gốc "
Chiramisu

1
Cảm ơn @Chiramisu đã cung cấp thông tin cập nhật và giúp đỡ cộng đồng. Tôi đã cập nhật câu trả lời để làm cho nó phù hợp với các phiên bản mới hơn của Visual Studio.
RBT

19

Cuối cùng đã theo dõi điều này với sự giúp đỡ của WinDBG và SOS. Vi phạm truy cập đã bị ném bởi một số DLL không xác định. Hóa ra một phần mềm gọi là "Nvidia Network Manager" đã gây ra sự cố. Tôi đã đọc vô số lần vấn đề này có thể gây ra bởi tường lửa hoặc phần mềm chống vi-rút, tôi không sử dụng vì vậy tôi đã loại bỏ ý tưởng này. Ngoài ra, tôi đã giả định rằng đó không phải là môi trường vì nó xảy ra trên hơn 1 máy chủ sử dụng phần cứng khác nhau. Hóa ra tất cả các máy tôi đã thử nghiệm này đều đang chạy "Trình quản lý mạng NVidia". Tôi tin rằng nó cài đặt với phần còn lại của trình điều khiển bo mạch chủ.

Hy vọng rằng điều này sẽ giúp được ai đó vì vấn đề này đã gây khó chịu cho ứng dụng của tôi trong một thời gian rất dài.


1
trong trường hợp của tôi khi tôi đọc dữ liệu thường xuyên từ lỗi ném thiết bị, tôi đã dừng luồng trong một thời gian bằng cách sử dụng Thread.S ngủ (1000) cho lần đọc tiếp theo. và làm việc hoàn hảo.
JRB

6
Tôi đã nghĩ rằng phương pháp chữa trị là "gỡ cài đặt NVidia Network Manager"
paulm

79
Hầu hết các câu trả lời bỏ phiếu mà không cung cấp bất kỳ câu trả lời hợp lý.
Teoman shipahi

Tôi nghi ngờ tôi có bất cứ điều gì liên quan đến nvidia trong bo mạch chủ hoặc phần mềm của tôi. Tôi đang sử dụng Visual Studio 2010. Vấn đề chỉ xảy ra trong quá trình gỡ lỗi dự án từ VS. Exe đầu ra của nó từ thư mục gỡ lỗi hoạt động hoàn hảo.
RBT

1
Tôi đang truy cập Chủ đề của quá trình của riêng tôi gây ra vấn đề.
Muhammad Saqib

13

Vấn đề có thể là do các nền tảng xây dựng DLL hỗn hợp trong dự án. tức là Bạn xây dựng dự án của mình thành Bất kỳ CPU nào nhưng có một số DLL trong dự án đã được xây dựng cho nền tảng x86. Những điều này sẽ gây ra sự cố ngẫu nhiên do ánh xạ bộ nhớ khác nhau của kiến ​​trúc 32 bit và 64 bit. Nếu tất cả các DLL được xây dựng cho một nền tảng, vấn đề có thể được giải quyết.



8

Lỗi này không nên xảy ra trong mã được quản lý. Điều này có thể giải quyết vấn đề:

Truy cập Visual Studio Debugger để bỏ qua ngoại lệ này:

Tools menu ->Options -> Debugging -> General -> Uncheck this option "Suppress JIT optimization on module load"

Hy vọng nó sẽ giúp.


3
Tôi xin lỗi vì nó không làm việc cho bạn. Lỗi này được nêu ra vì rất nhiều lý do, tôi nghĩ, giải pháp mà tôi đã đăng, có thể giải quyết vấn đề cho người khác nếu lý do là tối ưu hóa JIT.
tò mòBoy

6

Tôi đã chạy vào, và tìm thấy một giải pháp cho ngoại lệ này ngày hôm nay. Nó đã xảy ra khi tôi đang cố gắng gỡ lỗi một bài kiểm tra đơn vị (NUnit) được gọi là phương thức ảo trên một lớp trừu tượng.

Vấn đề dường như là với cài đặt .NET 4.5.1.

Tôi đã tải xuống .NET 4.5.2 và cài đặt (các dự án của tôi vẫn tham chiếu .NET 4.5.1) và vấn đề được giải quyết.

Nguồn giải pháp:

https://connect.microsoft.com/VisualStudio/feedback/details/819552/visual-studio-debugger-throws-accessviolationexception


5

Nó có thể là phần cứng. Nó có thể là một cái gì đó phức tạp ... nhưng tôi sẽ cố gắng đề xuất rằng ở đâu đó mã luồng của bạn không bảo vệ một số bộ sưu tập (chẳng hạn như một từ điển) với một khóa thích hợp.

Hệ điều hành và gói dịch vụ nào bạn đang chạy?


1
Chạy XP 64 SP2. Điều này đã xảy ra trên nhiều máy chủ mặc dù. Tôi đã trải qua mọi thứ rất nhiều lần và tôi không thấy bất cứ điều gì không an toàn. Ngoài ra, tôi sẽ không nhận được một lỗi sửa đổi bộ sưu tập chứ không phải là một viloation truy cập?
Ai đó khác

5

Tôi đã gặp vấn đề này gần đây khi tôi thay đổi máy chủ phát triển cho một dự án. Tôi đã gặp lỗi này trên dòng mã nơi tôi đã khai báo một biến OracleConnection mới.

Sau khi thử nhiều thứ, bao gồm cài đặt hotfix, tôi đã thử thay đổi các tham chiếu Oracle.DataAccess và System.Data.OracleClient trong dự án và nó đã hoạt động!

Khi một dự án được chuyển sang một máy mới, tôi khuyên bạn nên gia hạn tất cả các tài liệu tham khảo được thêm vào trong dự án đó.


4

Bạn đã thử tắt DEP (Ngăn chặn thực thi dữ liệu) cho ứng dụng của mình chưa?


2
Tôi không chắc đó là một ý tưởng tốt. Nó cũng có thể trì hoãn sự cố nhưng với chi phí gây ra thiệt hại nhiều hơn. Tôi nghĩ ý tưởng tốt nhất, nếu bạn sắp gặp sự cố, là sụp đổ sớm :-)
paxdiablo

1
Tắt DEP là không khôn ngoan nhưng là một bài tập chẩn đoán hữu ích.
vcsjones

4

Tôi phải đối mặt với cùng một vấn đề. Mã của tôi là .NET dll (tiện ích mở rộng AutoCAD) chạy bên trong AutoCAD 2012. Tôi cũng đang sử dụng Oracle.DataAccess và mã của tôi đã ném ngoại lệ tương tự trong ExecuteNonQuery (). Tôi may mắn giải quyết vấn đề này bằng cách thay đổi phiên bản .net của ODP mà tôi đang sử dụng (nghĩa là 2.x của Oracle.DataAccess)


Tôi đang đối mặt với cùng một vấn đề - autocad .net dll - bạn có thể giải thích vấn đề và cách khắc phục không?
BKSpurgeon

3

Vấn đề này gần như là một vấn đề đơn giản. Mã là xấu. Nó hiếm khi là các công cụ, chỉ từ một phân tích thống kê. Hàng triệu người đang sử dụng Visual Studio mỗi ngày và có thể một số ít đang sử dụng mã của bạn - bit nào của mã đang được thử nghiệm tốt hơn? Tôi đảm bảo rằng, nếu đây là một vấn đề với VS, có lẽ chúng tôi đã tìm thấy nó.

Điều mà câu nói có nghĩa là, khi bạn cố truy cập vào bộ nhớ không phải của bạn, thường là do bạn đang thực hiện nó với một con trỏ bị hỏng, xuất phát từ một nơi khác. Đó là lý do tại sao nó nêu rõ chỉ dẫn.

Với lỗi bộ nhớ, việc bắt lỗi hiếm khi ở gần nguyên nhân gốc của lỗi. Và các hiệu ứng là chính xác những gì bạn mô tả, dường như ngẫu nhiên. Bạn sẽ chỉ cần nhìn vào các thủ phạm thông thường, như:

  • con trỏ chưa được khởi tạo hoặc các giá trị khác.
  • viết nhiều hơn vào một bộ đệm hơn kích thước của nó.
  • tài nguyên được chia sẻ bởi các chủ đề không được bảo vệ bởi mutexes.

Làm việc ngược từ một vấn đề như thế này để tìm ra nguyên nhân gốc rễ là vô cùng khó khăn khi có rất nhiều điều có thể xảy ra giữa việc tạo ra vấn đề và phát hiện vấn đề.

Tôi chủ yếu tìm thấy nó dễ dàng hơn để có một cái nhìn vào những gì tham nhũng (nói, một con trỏ cụ thể) và sau đó làm thủ công phân tích tĩnh của mã để xem những gì có thể đã bị hỏng nó, kiểm tra thủ phạm thông thường như trình bày ở trên. Tuy nhiên, ngay cả điều này sẽ không bắt được chuỗi vấn đề dài.

Tôi không đủ quen thuộc với VS để biết nhưng bạn cũng có thể muốn xem xét khả năng sử dụng công cụ theo dõi bộ nhớ (như valgrind cho Linux) để xem liệu nó có thể phát hiện bất kỳ vấn đề rõ ràng nào không.


3
Bạn cũng có thể nhận được một con trỏ bị hỏng từ bộ nhớ xấu. Nếu điều này không xảy ra trên máy chủ có bộ nhớ ECC, hãy thử tiện ích kiểm tra bộ nhớ chạy dài để loại bỏ phần cứng là nguyên nhân.
cdonner

12
Tôi biết nó không phải là một vấn đề phần cứng vì nó xảy ra trên nhiều máy chủ. Cảm ơn cho thấy có một cái gì đó xấu trong đội trưởng mã rõ ràng. Tôi không đổ lỗi cho studio hình ảnh. Như đã nêu ứng dụng chạy tốt trong một khoảng thời gian ngẫu nhiên. Nó không dễ tái tạo và tôi đã cố gắng xác định vấn đề trong nhiều tuần nay.
Ai đó khác

5
@Someone Else: Tôi hầu như không nghĩ rằng việc gọi tên sẽ giúp bạn nhiều sự giúp đỡ.
Mitch Wheat

2
@Someone Khác, tôi đã giúp đỡ hết mức có thể để cung cấp thông tin hạn chế bạn đã cung cấp. Ngay cả bác sĩ giỏi nhất thế giới cũng không thể làm gì nhiều với một bệnh nhân chỉ nói "Tôi đau" :-) Nếu bạn muốn cung cấp thông tin cụ thể hơn, thì có lẽ chúng tôi có thể giúp nhiều hơn.
paxdiablo

5
Câu trả lời tồi, nhưng cách tiếp cận, suy đoán không biết xấu hổ, giả định không chính đáng, không có giải pháp nào được cung cấp ... Tại sao câu trả lời này vẫn còn? Và những gì 3 người có thể đã đưa ra câu trả lời này?
ThunderGr

3

Mã có thể xác minh sẽ không thể làm hỏng bộ nhớ, do đó, có điều gì đó không an toàn đang diễn ra. Bạn có đang sử dụng bất kỳ mã không an toàn ở bất cứ đâu, chẳng hạn như trong xử lý bộ đệm? Ngoài ra, những thứ về PInvoke có thể không liên quan, vì PInvoke liên quan đến việc chuyển đổi sang mã không được quản lý và liên quan đến việc sắp xếp.

Đề xuất tốt nhất của tôi là đính kèm với một cá thể bị sự cố và sử dụng WinDBG và SOS để tìm hiểu sâu hơn về những gì đang xảy ra tại thời điểm xảy ra sự cố. Điều này không dành cho người yếu tim, nhưng tại thời điểm này, bạn có thể cần phải tìm ra các công cụ mạnh hơn để xác định chính xác điều gì đang xảy ra.


Nó đề cập đến PInvoke như một nguyên nhân có thể trong thông báo lỗi. Không có mã không an toàn. Tôi sẽ thử WinDBG. Cảm ơn.
Ai đó khác

3

Ok, điều này có thể khá vô dụng và chỉ đơn giản là giai thoại, nhưng ...

Ngoại lệ này đã bị ném một cách nhất quán bởi một số thư viện Twain32 mà chúng tôi đang sử dụng trong dự án của tôi, nhưng sẽ chỉ xảy ra trong máy của tôi.

Tôi đã thử rất nhiều giải pháp được đề xuất trên internet, nhưng không có kết quả ... Cho đến khi tôi rút điện thoại ra (nó được kết nối qua USB).

Va no đa hoạt động.

Hóa ra các thư viện Twain32 đang cố liệt kê điện thoại của tôi là một thiết bị tương thích với Twain và một cái gì đó trong quá trình đó đã gây ra ngoại lệ đó.

Đi nào ...


3

Tôi đã gặp lỗi này khi sử dụng pinvoke trên một phương thức có tham chiếu đến a StringBuilder. Tôi đã sử dụng hàm tạo mặc định mà dường như chỉ cấp phát 16 byte. Windows đã cố gắng đặt hơn 16 byte vào bộ đệm và gây ra lỗi tràn bộ đệm.

Thay vì

StringBuilder windowText = new StringBuilder(); // Probable overflow of default capacity (16)

Sử dụng công suất lớn hơn:

StringBuilder windowText = new StringBuilder(3000);

2

trong trường hợp của tôi, tập tin đã được mở và do đó bị khóa.

Tôi đã nhận được nó khi cố tải một tệp Excel bằng LinqToExcel cũng được mở trong Excel.

đây là tất cả những gì tôi đã làm

    var maps = from f in book.Worksheet<NavMapping>()
                select f;
    try {
        foreach (var m in maps)
            if (!string.IsNullOrEmpty(m.SSS_ID) && _mappings.ContainsKey(m.SSS_ID))
                _mappings.Add(m.SSS_ID, m.CDS_ID);
    } catch (AccessViolationException ex) {
        _logger.Error("mapping file error. most likely this file is locked or open. " + ex);
    }

2

Tôi đã gặp lỗi tương tự trong một dự án tôi đang làm việc với VB.NET. Kiểm tra "Kích hoạt khung ứng dụng" trên trang thuộc tính đã giải quyết nó cho tôi.


1

Tôi cũng có vấn đề này . Tôi đã chạy các giải pháp khác nhau cùng một lúc bằng cách sử dụng visual studio, khi đóng các giải pháp khác và chỉ chạy giải pháp đích, nó hoạt động tốt mà không gặp lỗi đó.


1

Đã gặp lỗi này một cách ngẫu nhiên trong VS1017, khi cố gắng xây dựng một dự án đang xây dựng hoàn toàn tốt vào ngày hôm trước. Khởi động lại PC đã khắc phục sự cố đã hoạt động (Tôi cũng đã chạy lệnh sau đây, không chắc chắn nếu nó được yêu cầu: Netsh winock reset)


1
Đó chính xác là tình huống của tôi với VS 2017 - System.AccessViolationException: Đã cố đọc hoặc ghi bộ nhớ được bảo vệ. Đây thường là một dấu hiệu cho thấy bộ nhớ khác bị hỏng. Tôi chỉ cần khởi động lại PC để giải quyết vấn đề này mà không phải làm gì khác.
Hồng

0

Câu trả lời của tôi phụ thuộc rất nhiều vào kịch bản của bạn, nhưng chúng tôi đã gặp sự cố khi nâng cấp ứng dụng .NET cho máy khách> 10 tuổi để họ có thể làm cho nó hoạt động trên Windows 8.1. Câu trả lời của @ alhazen là loại trong sân bóng chính xác đối với tôi. Ứng dụng này dựa vào DLL của bên thứ ba mà khách hàng không muốn trả tiền để cập nhật (Pegasus / Accusoft ImagXpress). Chúng tôi đã nhắm mục tiêu lại ứng dụng cho .NET 4.5 nhưng mỗi lần thực hiện dòng sau chúng tôi lại nhận được AccessViolationException was unhandledthông báo:

UnlockPICImagXpress.PS_Unlock (1908228217,373714400,1341834561,28447);

Để khắc phục, chúng tôi đã phải thêm sự kiện hậu xây dựng sau vào dự án:

call "$(DevEnvDir)..\tools\vsvars32.bat"
"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\amd64\editbin.exe" /NXCOMPAT:NO "$(TargetPath)"

Điều này chỉ định rõ ràng việc thực thi là không tương thích với Ngăn chặn thực thi dữ liệu. Để biết thêm chi tiết xem tại đây .


0

Trong một số trường hợp, điều này có thể xảy ra khi:

obj = new obj();
...
obj.Dispose();  // <-----------------    Incorrect disposal causes it
obj.abc...

0

Trong trường hợp của tôi, tôi đã phải tham chiếu thư viện C / C ++ bằng P / Invoke, nhưng tôi phải đảm bảo rằng bộ nhớ được phân bổ cho mảng đầu ra bằng cách sử dụng fixed:

[DllImport("my_c_func_lib.dll", CharSet = CharSet.Ansi)]
public static extern unsafe int my_c_func(double input1, double input2, double pinput3, double *outData);

    public unsafe double[] GetMyUnmanagedCodeValue(double input1, double input2, double input3)
    {
        double[] outData = new double[24];

        fixed (double* returnValue = outData)
        {
            my_c_func(input1, input2, pinput3, returnValue);
        }

        return outData;
    }

Để biết chi tiết, vui lòng xem: https://www.c-sharpcorner.com/article/pointers-in-C-Sharp/


0

Điều này đã xảy ra với tôi khi tôi gỡ lỗi ứng dụng C # WinForms của mình trong Visual Studio. Ứng dụng của tôi thực hiện các cuộc gọi đến nội dung Win32 thông qua DLLImport, vd

[DllImport("Secur32.dll", SetLastError = false)]
private static extern uint LsaEnumerateLogonSessions(out UInt64 LogonSessionCount, out IntPtr LogonSessionList);

Chạy Visual Studio "với tư cách là Quản trị viên" đã giải quyết vấn đề cho tôi.


0

Tôi đã có thông báo lỗi tương tự:

System.AccessViolationException: Đã cố đọc hoặc ghi bộ nhớ được bảo vệ. Đây thường là một dấu hiệu cho thấy bộ nhớ khác bị hỏng.

Trong trường hợp của tôi, lỗi đã biến mất sau khi dọn dẹp và xây dựng lại giải pháp.


0

Trong trường hợp của tôi, tiện ích FTDI FT Prog đã gặp lỗi khi quét các thiết bị USB. Rút tai nghe Bluetooth của tôi khỏi PC đã khắc phục sự cố.


0

Tôi nhận được thông báo lỗi này trên biểu thức lambda đang sử dụng Linq để lọc một bộ sưu tập các đối tượng. Khi tôi kiểm tra bộ sưu tập tôi nhận thấy rằng các thành viên của nó không có dân cư - trong Localscửa sổ, việc mở rộng chúng chỉ hiển thị "...". Cuối cùng, vấn đề nằm ở phương thức lưu trữ ban đầu đã tạo ra bộ sưu tập - Dapper đang cố gắng tự động ánh xạ một thuộc tính của một đối tượng lồng nhau. Tôi đã sửa lỗi truy vấn Dapper để xử lý đa ánh xạ và nó đã sửa lỗi bộ nhớ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.