2011-09-02 54 views
8

Tôi có một ứng dụng được viết bằng ASP.NET sử dụng DllImport để tham chiếu một dll được viết bằng Delphi. Trên máy tính Windows 7 dev của tôi bằng cách sử dụng máy chủ phát triển asp.net truy cập DDL hoạt động như mong đợi.Ứng dụng lỗi W3wp.exe

Tuy nhiên trên Windows Server 2008 Sản xuất máy chủ chạy IIS 7 dll trả lại lỗi "Trang không thể được tìm thấy" và các lỗi sau bật vào Nhật ký ứng dụng:

Faulting application w3wp.exe, version 7.0.6002.18005, time stamp 0x49e023cf, faulting 
module ntdll.dll, version 6.0.6002.18005, time stamp 0x49e03821, exception code 
0xc0000374, fault offset 0x000afaf8, process id 0xab8, application start time 
0x01cc6947b1bb081b. 

Làm thế nào để giải quyết việc này hoặc làm thế nào có thể Tôi tìm thấy một nguyên nhân sâu sắc hơn?

+1

Trong môi trường dev của bạn, bạn đã thử chạy ứng dụng của bạn trong IIS cục bộ của bạn như trái ngược với việc sử dụng Máy chủ phát triển? Hãy nhớ rằng, Máy chủ Web phát triển chạy dưới thông tin đăng nhập của bạn để các quyền ứng dụng khác nhau khi bạn chạy nó trong IIS. Xem nếu chạy trong IIS cục bộ cũng làm tăng lỗi. – Icarus

+0

Chạy ứng dụng localy trên IIS cũng làm tăng lỗi. – Sebastiaan

+0

vì vậy bạn đang thực hiện tiến bộ ... bây giờ bạn đã thực hiện điều đó với một số loại quyền hoặc mức độ tin cậy vì IIS trên hộp địa phương của bạn cũng làm tăng vấn đề. – Icarus

Trả lời

3

Chỉ cần linh cảm nhưng bạn có thể thử enabling 32bit worker process. Nó tương thích hơn với 64bit và có thể hữu ích. Máy chủ cục bộ của bạn có 32 bit không?

%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.enable32BitAppOnWin64:true 

Không làm điều này có thể giúp gỡ rối vấn đề.

Troubleshooting IIS7 Worker Thread Crashes (w3wp.exe) with a Faulting Module of ntdll.dll

Còn có một chủ đề ở đây có cùng vấn đề. Họ gợi ý rằng việc thêm tham chiếu đến kernel32.dll đã giải quyết được vấn đề.

Calling unmanaged code from ASP.NET in IIS7

Cập nhật

Một số người báo cáo rằng sao chép phụ thuộc của bạn để Windows\System32\Inetsrv giải quyết vấn đề này. Nó đáng để thử.

+0

Tôi cho phép 32 bit công nhân procces nhưng không thành công, cửa sổ của tôi 7 là 64bit – Sebastiaan

+1

Đó là giá trị một shot, 'mã ngoại lệ 0xc0000374' có nghĩa là tham nhũng đống. – TheCodeKing

+1

Chỉ cần làm một số đọc thêm về điều này, có vẻ như rất nhiều người có vấn đề gọi mã không được quản lý trong IIS7. – TheCodeKing

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