2009-01-14 36 views
18

Tôi sẽ phát triển một ứng dụng sẽ xử lý dữ liệu trực tuyến (đi qua socket) và nó không cần bất kỳ tương tác người dùng nào.Lợi ích của việc phát triển ứng dụng như một dịch vụ windows là gì?

Tôi đang nghĩ đến một ứng dụng giao diện điều khiển đơn giản, nhưng dịch vụ cửa sổ nào cung cấp thêm lợi ích? (Tôi biết các cửa sổ dịch vụ không cần người dùng đăng nhập vào để chạy các dịch vụ nhưng tôi hỏi về lợi ích thêm)

Trả lời

17

Trên đỉnh đầu của tôi:

  • Bạn có thể kiểm soát người sử dụng (và các quyền liên quan với tài khoản người dùng này) bắt đầu quá trình
  • quy trình Tự động bắt đầu có nghĩa là máy tính để bàn cần được bật, để dịch vụ chạy
  • chính sách thất bại có thể được xác định (cố gắng khởi động lại n lần chạy một chương trình cụ thể nếu không thành công)
  • một phụ thuộc y có thể được định nghĩa (nếu bạn phụ thuộc vào doanh dịch vụ khác)
  • bạn có thể quấn scrip của bạn trong một invisible windows
  • bạn có thể dễ dàng bắt đầu/dừng/khởi động lại kịch bản (net start <scriptname>)
2

Trong thực tế, nó thực sự phụ thuộc vào việc sử dụng ứng dụng của bạn, tôi nghĩ vậy.

Ví dụ: nếu bạn chỉ cần chạy quá trình xử lý của mình tại một thời điểm cụ thể, việc sử dụng dòng lệnh có thể là đủ.

Dịch vụ cửa sổ sẽ thực sự thú vị nếu quá trình của bạn cần chạy liên tục và âm thầm (không có tương tác của người dùng).

Bạn cũng có thể xem xét việc lập lịch tác vụ trong Windows. Về cơ bản, nó sẽ chạy ứng dụng của bạn (thông qua một tập tin .bat) vào những thời điểm cụ thể. Nó có thể hữu ích nếu ứng dụng của bạn cần phải chạy mỗi ngày lúc 02:00 chẳng hạn ... Trong "Control Panel", bạn có một tùy chọn "Scheduled Tasks". Sau đó, bạn click vào "Add Scheduled Task", và theo các hướng dẫn ...

4
  1. Bạn có thể quản lý một dịch vụ từ máy khác (start/stop)
  2. Khi các dịch vụ gửi thư cho sự kiện đăng nhập của bạn cũng có thể giám sát các dịch vụ từ máy khác (mặc dù không có gì dừng bạn từ làm điều này từ một ứng dụng thường xuyên)
  3. không ai có được đăng nhập cho dịch vụ để chạy
6

tôi không thể thêm bất cứ điều gì vào danh sách VonC nhưng Tôi sẽ thêm rằng nếu bạn đang sử dụng các công cụ thông thường của Microsoft (VS & .net) thật dễ dàng để làm cả hai.

Tôi tạo một thư viện lớp chứa tất cả logic ứng dụng của tôi và lớp MyServer có các phương thức .Start() và .Stop(). Sau đó, bạn có thể tạo cả ứng dụng bảng điều khiển và ứng dụng winservice mà cả hai đều tham chiếu đến điều này. Ví dụ. giao diện điều khiển Ứng dụng khởi tạo một MyServer mới, gọi Start, chờ một phím bấm và các cuộc gọi Stop.

Tôi sử dụng ứng dụng bảng điều khiển trong quá trình phát triển và dịch vụ cửa sổ để triển khai.

+0

Điều đó thật tuyệt vời nhưng tôi sẽ phát triển nó bằng C++ (ứng dụng win32) –

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