2012-10-14 36 views
5

Đối .Net4, là có bất kỳ sự khác biệt giữa những điều sausự khác nhau giữa ServiceHost và WebServiceHost là gì?

Uri baseAddress = new Uri("http://localhost:8080/test"); 
ServiceHost host = new ServiceHost(typeof(TestService), baseAddress); 
host.Open(); 

Uri baseAddress = new Uri("http://localhost:8080/test"); 
WebServiceHost host = new WebServiceHost(typeof(TestService), baseAddress); 
host.Open(); 

tất cả những cuốn sách khuyên bạn sử dụng webServiceHost, nhưng tại sao tôi không thể nhìn thấy sự khác biệt?

Trả lời

1

Sử dụng WebServiceHost(Object, Uri[]) hàm tạo khi bạn có loại dịch vụ và bạn có thể tạo các phiên bản mới của nó khi cần, ngay cả khi bạn cần một cá thể đơn lẻ. Sử dụng hàm tạo ServiceHost(Object, Uri[]) thay vì chỉ khi bạn muốn máy chủ dịch vụ sử dụng một cá thể đơn lẻ cụ thể của dịch vụ.

+1

nghĩa là ServiceHost là singleton, nhưng WebServiceHost thì không? bất kỳ bằng chứng? –

+0

@AdamLee đọc nhận xét từ [MSDN] này (http://msdn.microsoft.com/en-us/library/ms585489 (v = vs.100) .aspx) trang – Jaguar

6

Lớp WebServiceHost được dựa trên lớp ServiceHost.

Nó đi kèm với WebHttpBindingWebHttpBehavior theo mặc định. (Những điều tốt đẹp là bạn không cần một tập tin cấu hình, sử dụng đơn giản.)

Từ MSDN:

Khi bạn sử dụng WebServiceHost thay vì ServiceHost, nó sẽ tự động tạo ra một thiết bị đầu cuối Web cho bạn sử dụng địa chỉ HTTP cơ sở và định cấu hình điểm cuối được tiêm với WebHttpBehavior

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