Tôi đang sử dụng NHunspell trong một ứng dụng web ASP.net. NHunspell kết thúc tốt đẹp hoặc Hunspellx86.dll hoặc Hunspellx64.dll, cả hai đều không được quản lý dll.Không thể xóa dll được quản lý sau khi sử dụng nó trong ứng dụng web asp.net
Vấn đề là: khi tôi vứt bỏ đối tượng NHunspell (gọi FreeLibrary
từ kernel32.dll
), có vẻ như IIS vẫn đang treo trên nó - được minh chứng bằng cả windbg và tasklist /m
. Đây là vấn đề nếu, nói, tôi cố gắng thay thế dll đó bằng cách sử dụng một quá trình xây dựng tự động, hoặc chạy một trình cài đặt để cập nhật ứng dụng web của tôi: mọi thứ đều thất bại vì dll đó đang được sử dụng.
Tôi tự hỏi liệu có ai có thể xác nhận sự nghi ngờ của tôi rằng thực tế, IIS đang lưu vào bộ nhớ đệm không? Ngoài ra, tại sao tôi có thể xóa các dll được quản lý ngay từ dưới IIS (ngay cả khi tasklist
báo cáo các dll này được IIS sử dụng)?
Cuối cùng, tôi đang tìm kiếm các đề xuất về những việc cần làm để thực sự có thể xóa dll này cho các bản dựng/cài đặt tự động?
Cảm ơn rất nhiều!
Tùy chọn quá mức tôi đoán là 'iisadmin/stop' và' iisadmin/start' xung quanh các phần đó trong tòa nhà của bạn - giả sử công trình của bạn đang chạy với đủ quyền. – Rup
Bạn cũng đã thử [Sysinternals Process Explorer] (http://technet.microsoft.com/en-us/sysinternals/bb896653) chưa? Bạn có thể thực hiện tìm kiếm xử lý cho tên DLL và xem chính xác quy trình nào vẫn đang giữ trên DLL - dịch vụ lõi IIS hoặc nhóm ứng dụng. Điều này có thể không cho bạn biết bất cứ điều gì mới, mặc dù. – Rup
Chúng tôi đang gặp vấn đề tương tự này. –