2009-05-14 39 views

Trả lời

8

By

"Gọi rằng dịch vụ"

làm bạn có nghĩa là, quản lý dịch vụ? Như trong, Start, Stop, Restart etc? Nếu có thì câu trả lời là có. Có một bài viết hay tại số www.csharp-examples.net sẽ chỉ cho bạn cách sử dụng lớp ServiceController.

Nếu tuy nhiên, bạn có nghĩa là gửi tin nhắn cho nó, như thể đó là một dịch vụ web, thì câu trả lời là tùy thuộc vào cách bạn đang hiển thị dịch vụ của mình. Dịch vụ Windows có thể lưu trữ các dịch vụ WCF, do đó, đó sẽ là một lựa chọn tốt, nếu bạn muốn để lộ dịch vụ cửa sổ của bạn cho khách hàng internet.

3

Một số rõ ràng sẽ giúp - bạn cũng có thể giải thích "gọi dịch vụ đó" như một số loại cuộc gọi phương thức từ xa từ ASP.NET đến dịch vụ của bạn - ví dụ: để lưu trữ một số trạng thái trong Dịch vụ Windows của bạn.

Lưu trữ điểm cuối dịch vụ trong Dịch vụ Windows, ví dụ: sử dụng Remoting, WCF, hoặc đồng bằng ol 'TCP socket server. Tất cả đều có thể được gọi bởi khách hàng được lưu trữ trong ASP.NET.

Có rất nhiều điều khiển từ xa và các ví dụ WCF ngoài đó làm việc đó - tìm kiếm lưu trữ và một trong những công nghệ đó.

Một số MSDN liên kết để đọc:

Remoting

WCF

Bạn cũng nên đọc về Windows Process Activation - bạn có thể nhận được ngay mà không cần viết một dịch vụ riêng biệt.

1

Ngoài ra, để gửi một tin nhắn đơn giản (thực sự), cũng có thể sử dụng ServiceController.ExecuteCommand(int command) . Với việc sử dụng executecommand, thật dễ dàng để gửi một thông báo integer/enum.

var myService = new ServiceController("SimpleService"); 
myService.ExecuteCommand(128); 
myService.ExecuteCommand((int)SimpleServiceCustomCommands.ScanFiles); 

myService trông giống như:

public class myService : ServiceBase 
{ 
    ... 
    protected override void OnCustomCommand(int command) 
    { 
    //executes logic 
Các vấn đề liên quan