2013-01-24 61 views
11

Tôi phát triển một ứng dụng cửa sổ và tôi cũng tạo một dịch vụ. Tôi bắt đầu dịch vụ bằng cách sử dụng mã hóa trong ứng dụng cửa sổ, nhưng tôi gặp lỗi như không thể mở dịch vụ cửa sổ trên máy tính '.'không thể mở dịch vụ cửa sổ trên máy tính '.' trong ứng dụng cửa sổ

Tôi đã sử dụng mã bên dưới.

ServiceController controller = new ServiceController("SeoMozScheduleService"); 

if (controller.Status == ServiceControllerStatus.Stopped) 
{ 
    controller.Start(); 
} 

Nếu tôi nhấp chuột phải vào ứng dụng và chọn Run as Administrator hơn nó hoạt động tốt đối với tôi ...

+1

Sẽ hữu ích nếu bạn đăng tin nhắn thực sự, không phải là lỗi 'thích' thư. '.' đôi khi có thể được sử dụng để có nghĩa là máy địa phương. –

+1

Thông báo lỗi * thực tế * là gì? –

+0

Bạn có thể khởi động dịch vụ bình thường không? – PhoenixReborn

Trả lời

9

Đến c: // Program Files/ApplicationFolder/.exe Nhấp chuột phải vào .exe và đi đến Properties sau đó đi Tab Compability và kiểm tra sự thật để chạy chương trình này như là một cấp quản trị viên.

+8

Tôi không có đủ danh tiếng để downvote vì vậy tôi sẽ chỉ bình luận ở đây và nói rằng quyền cao là không bao giờ là giải pháp phù hợp bởi vì người dùng của bạn có thể không có đặc quyền quản trị viên. – Tsury

+1

Tôi chạy nó trong một giao diện điều khiển như admin, cũng như các dịch vụ như admin ... và dịch vụ đã cài đặt nhưng nó đã không bắt đầu cho đến khi tôi thiết lập thuộc tính đó. wow, đó là một giải tỏa! cảm ơn! – Jaider

+0

Tôi đồng ý với Jaider. Có một số tình huống máy chủ mà người dùng không tham gia, nhưng các tác vụ tự động đang được chạy dưới một người dùng.Đó là một phần của vẻ đẹp của stackoverflow - nhiều câu trả lời, một trong số đó có thể hoạt động tốt nhất trong môi trường của bạn. – Jeff

3

nếu bạn đang sử dụng visual studio sau đó đóng nó lại và tái Sudio thị giác cởi mở với chạy nó as administrator

15

Để thực hiện mỗi khi bạn mở ứng dụng bạn phải add a manifest file vào dung dịch này tự động, sau đó cập nhật nút requestedExecutionLevel bên trong tệp để trông giống như sau:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
</requestedPrivileges> 

Tuy nhiên, thay đổi cài đặt này sẽ dẫn bạn mỗi lần chạy ứng dụng với tư cách quản trị viên nếu UAC được bật.

+1

Điều này không hiệu quả đối với tôi. Đơn giản chỉ cần chạy Visual Studio hoặc thực thi như quản trị viên giải quyết vấn đề. –

0

Thay đổi phiên bản khung trong tệp app.conf thành phiên bản được cài đặt trên hệ thống đã khắc phục sự cố cho tôi.

1

Tôi đã thực hiện thao tác này với nhiệm vụ được lên lịch trên máy chủ - kiểm tra "Chạy với đặc quyền cao nhất" đã giải quyết được. (Tài khoản dịch vụ phải có quyền quản trị của khóa học để làm việc này.)

1

Không giải pháp nào giúp ích cho tôi, vì nó sẽ giúp ích nếu tôi thực sự đảm bảo rằng tôi đã có quyền truy cập Quản trị viên trên máy tính đích trước! Tôi đã lấy đi và trả lại quyền truy cập Quản trị viên cho tài khoản chính của mình bằng tài khoản quản trị miền của tôi. Khi tôi chạy một số mã ServiceController đang kiểm tra xem một dịch vụ đang chạy trên một máy tính từ xa, trong tài khoản quản trị miền, tất cả đều ổn. Khi tôi đã làm nó như là tài khoản chính của tôi, đó là khi nó không hoạt động - ngay cả khi chạy Visual Studio như một quản trị viên. Hóa ra tôi đã được thử nghiệm mà không có tài khoản chính của tôi trong nhóm Admin địa phương ... d'oh!

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