6

Mã ngoại lệ C0000005 được ném từ mscorwks.dll khi ứng dụng được chạy trên Windows Server 2008 R2 được khởi chạy bằng cách sử dụng kiểm tra hoàn tất. Các nền tảng khác (Windows   XP, Máy chủ 2003 R2, Windows   7 32 bit và 64 bit) không trình bày ngoại lệ này.Các nguyên nhân và giải pháp của mã ngoại lệ c0000005 trong mscorwks.dll là gì?

Nhật ký sự kiện từ một thực đơn có rất nhiều các sự kiện sau đây với sự kiện ID 1023 nêu ra bởi .NET Runtime:

.NET Runtime phiên bản 2.0.50727.4952 - Fatal Thi Engine Lỗi (7383851A) (80131506)

Việc áp dụng chính nó làm cho việc sử dụng một giao diện SOAP tạo ra bởi Visual Studio từ một tập tin WSDL, một đối tượng COM với một interop nhúng, và được nhắm mục tiêu .NET 4.

sfc/scannow đã được chạy và không tìm thấy sự cố nào với tệp hệ thống trên hệ thống bị ảnh hưởng.

Bạn có thể khắc phục sự cố nào để xác định giải pháp?

Trả lời

3

Lỗi này là do lỗi trong cách TestComplete 7 tương tác với vùng đệm trong các ứng dụng được quản lý/không được quản lý hỗn hợp. Thay vì sử dụng các phương pháp TestedApp.Run sử dụng khối mã sau đây, sửa đổi cho bạn lựa chọn ngôn ngữ kịch bản, trình bày trong VBScript:

Dim oScript, command 
Set oScript = CreateObject("WScript.Shell") 

command = "%comspec% /c " & PATH_TO_EXE & " " & Args 
oScript.Run command, 10, True 

Các MSDN bài viết có liên quan là Run Method (Windows Script Host).

3

Một 0xC0000005 là một mã ngoại lệ bao gồm lỗi Win32 có nghĩa là "Truy cập bị từ chối". Cho rằng bạn đang sử dụng COM interop và đang nhận được một ExecutionEngineException (trong COM, COR_E_EXECUTIONENGINE; 0x80131506), tôi đoán đó là một con trỏ NULL trong thành phần COM hoặc một chỉ thị bị lỗi ComImport trong mã .NET của bạn.

+2

Mã ngoại lệ không phải là mã lỗi win32 không phải là HRESULT không phải là NTSTATUS. Xin lỗi con thú cưng của tôi. –

+0

Tôi biết ai đó sẽ gọi điều này. Ok, tốt, 0xC0000005 là lỗi Win32. HRESULT tương ứng là 0x80070005. – codekaizen

+0

Nó không phải là một lỗi win32. Đó là một mã ngoại lệ. Nạp 0xC0000005 vào ví dụ FormatMessage và bạn sẽ không nhận được kết quả hữu ích. –

8

Lỗi thực thi công cụ gây tử vong và vi phạm truy cập là cả hai triệu chứng của cùng một vấn đề. FEEE được nâng lên khi trình thu gom rác .NET phát hiện rằng cấu trúc bên trong của đống rác thu thập được bị phá hủy. Vi phạm quyền truy cập là ngoại lệ phần cứng, được bộ xử lý đưa ra khi được yêu cầu truy cập vào bộ nhớ có địa chỉ không hợp lệ. Một nguyên nhân phổ biến của AV là lỗi tham nhũng.

Những loại rủi ro này rất phổ biến do mã không được quản lý. Nó cũng khá phổ biến đối với mã không được quản lý để có lỗi quản lý bộ nhớ tiềm ẩn có thể không được chú ý trong một thời gian dài. Loại thiệt hại mà lỗi có thể làm có xu hướng khá ngẫu nhiên. Chỉ cần chạy nó trên một hệ điều hành khác có một mẫu phân bổ bộ nhớ khác nhau có thể đủ để kích hoạt quả bom.

Bạn có một ứng cử viên xuất sắc cho nguồn gốc của sự cố. Bạn sẽ cần phải làm việc với nhà cung cấp máy chủ COM hoặc tác giả để theo dõi lỗi.

0

TestComplete 7 (bao gồm bản cập nhật mới nhất 7.52) hỗ trợ .NET Framework 4 chỉ lên phiên bản .NET 4 Beta 2. Nó không hỗ trợ phiên bản của Khung, vì vậy đây có thể là nguyên nhân của sự cố.

Thử xây dựng ứng dụng nhắm mục tiêu .NET 2.0. Điều này sẽ giải quyết vấn đề.

Để kiểm tra các ứng dụng .NET 4, bạn sẽ cần sử dụng TestComplete 8.

+0

Chúng tôi nhận thức được các giới hạn hỗ trợ .Net của TestComplete 7. Chúng tôi hiện đang trong quá trình chuyển sang TestComplete 8, nhưng ở trên là một công việc xung quanh cho các vấn đề tương thích .Net 4. – Erick

Các vấn đề liên quan