2013-02-11 8 views
5

Làm thế nào để bạn buộc máy chủ COM cục bộ chạy dưới một tài khoản chung (hệ thống cục bộ sẽ tốt)? Tài liệu RunAs có vẻ như chỉ dành cho DCOM và không hoạt động cục bộ.Máy chủ quá trình COM bắt đầu nhiều phiên bản

Vấn đề mà tôi gặp phải là CoCreateInstance của tôi đang được gọi từ các tiến trình đang chạy trên các máy tính khác nhau và SCM trong trường hợp này muốn bắt đầu một máy chủ mới cho mỗi máy tính để bàn, tôi chỉ muốn một instanse duy nhất - như được thiết kế!

+0

Điều này có phù hợp hơn với [ServerFault?] (Http://serverfault.com/) – Piccolo

+0

DCOM cũng được sử dụng cho máy chủ cục bộ hay không. Bạn đã thử sử dụng 'Cấu hình DCOM' và thay đổi' Identity' chưa? – sharptooth

+0

Chắc chắn có, không có sự khác biệt. Tôi mong đợi trong Task Manager để xem SYSTEM nhưng khi tôi chạy từ dòng lệnh nó vẫn chạy theo ID của tôi – user1371314

Trả lời

0

Điều bạn mô tả là dịch vụ hệ thống, không phải máy chủ COM. Một máy chủ COM được thiết kế để chạy dưới bất kỳ phiên chạy nó, không theo "phiên 0" (dịch vụ) hoặc bất kỳ phiên duy nhất. Nếu bạn cần một cái gì đó mà chỉ chạy dưới 1 phiên và có quyền truy cập toàn cầu vào mọi thứ khác, bạn nên sử dụng một dịch vụ Windows, không phải là một máy chủ COM.

Nếu bạn cần khía cạnh máy chủ COM vì lý do khác, nhưng muốn chia sẻ tài nguyên trên toàn cầu hoặc vẫn có "một quy trình" kiểm soát mọi thứ bạn cần làm ... bạn có thể kết nối máy chủ COM với dịch vụ của mình Phương pháp IPC bạn thích.

Ngoài ra, trong nhận xét của bạn, bạn nói "khi tôi chạy từ dòng lệnh" - nếu bạn chạy EXE từ dòng lệnh, nó không quan trọng nếu nó được đăng ký như một máy chủ COM hay không, nó chỉ chạy giống như bất kỳ ứng dụng EXE/ứng dụng nào khác - có nghĩa là nó chạy như bất kỳ người dùng nào bạn chạy nó, trong bất kỳ phiên nào bạn đang ở. Đăng ký EXE như một máy chủ COM chỉ cho phép các quy trình khác chạy EXE đó và giao tiếp với nó thông qua OLE/COM, nhưng EXE vẫn có thể chạy như một ứng dụng bình thường. Ví dụ, Microsoft Word và Outlook là cả hai máy chủ COM. Đó là, outlook.exe là một máy chủ COM, nhưng tất nhiên bạn cũng có thể chạy nó như một ứng dụng bình thường.

+0

Cảm ơn, đã hiểu. Tôi đã chuyển đổi sang một Dịch vụ Windows và các dịch vụ đó hoạt động hoàn hảo. – user1371314