本文主要講述ASP.NET調用多Endpoint多Contract的WCF Service,包括以下實現:
- ASP.NET調用WCF Service
- WCF Service Library,在IIS Host
- 多Endpoint多Contract的WCF Service(在一個服務*.svc實現)
- 動態引用WCF 服務
本文的全部源碼可以在這兒下載(ASP.NET調用多Endpoint多Contract的WCF Service源碼)。
代碼結構
代碼結構如下:三個工程,一個是WCF Service(IIS Host)包含一個空的*.svc,一個是WCF Service Library,一個是ASP.NET用戶端調用WCF Service。使用WCF Service Library的好處當然是靈活性,你可以自己選擇用什麼方式Host WCF Service,可以是IIS/WebService,也可以是Windows Service,或者自訂的應用等。
在一個*.svc實現多個Contract和Endpoint,:
先講一下WCF Service Library,裡面就是放了些Service Contract,還有實現;你當然可以在Contract抽出來放在另外一個dll一面,這裡為了示範方便,放在了一起。但為了一個*.svc實現多個Contract和Endpoint,要注意這個service必須實現多個contract介面,這裡用局部類來實現:partial class
IService2是這樣的:
WCF SERVICE的Web.config配置:(一個*.svc實現多個Contract和Endpoint)
WCF Service的Service1.svc就是一個空殼,但要修改一下,把實現指向WCf Service Library:
WCF Service運行起來以後是可以訪問的:
在ASP.NET用戶端調用WCF Service:(可以分別調用多個Service Contract介面)
注意,這裡是直接靜態服務引用,可以實現動態建立WCF服務引用,這裡不複代碼了,很簡單的。
在ASP.NET用戶端Web.config:
源碼下載
本文的全部源碼可以在這兒下載(ASP.NET調用多Endpoint多Contract的WCF Service源碼)。