Tôi hiện đang phát triển dự án C# WebAPI tham chiếu đến tệp api dll của bên thứ ba. Thành phần này là một tham chiếu COM đơn giản mà tôi đã thêm vào dự án studio trực quan.
API web được xuất bản trên máy chủ mạng nội bộ (IIS) với bảo mật tích hợp & tính năng mạo danh người dùng được bật, tắt tính năng ẩn danh ẩn danh.COMException CreateInstance không thành công khi xuất bản
Khi chạy api web trong studio trực quan (2015) trên máy cục bộ của tôi, mọi thứ hoạt động hoàn hảo.
Khi chạy api web đăng tải trên máy chủ IIS của chúng tôi, tất cả mọi thứ cũng hoạt động tốt, tuy nhiên khi tôi gửi một yêu cầu đến một hành động điều khiển sử dụng thư viện của bên thứ ba, tôi nhận được lỗi sau:
System.Runtime.InteropServices.COMException
Additional information:
CreateInstance failed.
at ThirdPartyLib.Connect()
Các sự phụ thuộc của bên thứ ba đã được cài đặt trên máy chủ (cũng như máy dev của tôi) bằng trình cài đặt của họ. Điều này đã đăng ký một bộ dll và cài đặt phần mềm đi kèm. Tôi đã xác minh cài đặt chính xác. Trong thực tế, một ứng dụng winforms đơn giản sử dụng cùng một dll hoạt động tốt.
Trình theo dõi quá trình hiển thị w3wp.exe đang sử dụng dll chính xác.
Tôi không chắc mình đang thiếu gì?
Nếu đây là vấn đề về quyền, tôi sẽ giải quyết nó như thế nào?
dự án có đủ quyền truy cập vào dll không? – Steve
Tôi không biết cách tìm hiểu. UAC bị tắt. Đó là máy chủ mạng nội bộ sử dụng bảo mật tích hợp để tài khoản của tôi bị mạo danh khi tôi truy cập. – Bart
"Cài đặt" có nghĩa là gì? Nó đã được đăng ký chưa? "Tôi có dự án API web C#" nghĩa là gì? Bạn có mã nguồn không? Làm thế nào để bạn gọi thành phần COM? Bạn đã thử cái gì? Bạn đã chạy Process Monitor để xem nơi nó cố gắng để tải các DLL từ? –