Chúng tôi đang tham chiếu một DLL CLI độc quyền của bên thứ ba trong dự án .net của chúng tôi. DLL này chỉ là một giao diện cho thư viện C++ độc quyền của chúng. Dự án của chúng tôi là một ứng dụng web asp.net (MVC4/Web API).Tham chiếu đến một DLL không ổn định
Thư viện không được quản lý C++ khá không ổn định. Đôi khi nó gặp sự cố với ví dụ: con trỏ lơ lửng. Chúng tôi không có cách nào để giải quyết nó, và sử dụng thư viện này là một yêu cầu của khách hàng hạng nhất.
Khi ứng dụng gặp sự cố, nhóm ứng dụng trong IIS không phản hồi nữa. Chúng ta phải khởi động lại nó, và làm như vậy mất một vài phút (có, đó là lâu!).
Chúng tôi muốn giữ tệp DLL không ổn định này khỏi ứng dụng của chúng tôi. Cách tốt nhất để làm điều đó là gì? Chúng ta có thể giữ CLI DLL trong một AppDomain riêng biệt không? Làm sao?
Xin cảm ơn trước.
Bạn đã quan sát điều gì? Quá trình có treo sau một số cuộc gọi nhất định không? Bạn có nghi ngờ DLL không ổn định có rò rỉ bộ nhớ không? – xpereta
Rò rỉ bộ nhớ không phải là vấn đề cho đến bây giờ. Trong quá trình phát triển, DLL đôi khi làm hỏng máy chủ phát triển với một sự vi phạm truy cập bộ nhớ. Đôi khi máy chủ phát triển sử dụng ~ 70% CPU cho đến khi tôi giết quá trình.Khi được triển khai trong IIS, các sự cố treo và CPU không thực sự xảy ra nhiều, nhưng một lần trong một thời gian quá trình IIS ngừng đáp ứng, và khởi động lại IIS mất một thời gian dài. – Schiavini
Bạn đã thử tăng tỷ lệ tái chế quy trình IIS chưa? – xpereta