WCF 入门(23,24)
前言
重新找了工作,過去的事情就過去好了。有些不一樣的經歷也不是說一定就是壞事。
第24集 在控制臺應用程序中自托管WCF服務 Self hosting a wcf service in console application
第23集比較簡短,總共2分鐘不到的樣子,介紹了WCF托管的幾種方式,其實就是如何把這個服務架起來,可以讓外部調用。總共有4中。
| 方式 | 描述 |
| self-hosting(自托管) | 用控制臺或者winform的應用程序來托管 |
| windows 服務 | 用windows 服務的方式 |
| IIS | 可以用IIS服務來托管服務,只支持http 協議的Binding |
| Windows Activation Service(WAS) | 用帶WAS的IIS 7 來托管服務,支持所有的Binding |
24集先講一下第一種,self-hosting
?
所謂的self-hosting就是把服務交給 .net的托管代碼程序(比如console application,winform application,WPF application)來host的方式。有點拗口,反正只要看服務是架在哪里的就行了。
?
self-hosting 的方式有幾個優點:
1. 容易架設。配合VS,只要編輯一下app.config就可以很容易跑起來。
2. 容易調試。沒有必要去附加什么其他的進程(比如iis 的w3wp)。
3. 支持所有的傳輸協議。
4. 生命周期可控。通過調用Open() 和 Close()方法可以很方便的控制服務的狀態。
有優點就一定有缺點:
1. 只有在service host running了之后才能調用service。
2. 不能像iis被動激活。
3. 要自己寫一些代碼來控制。
?
下面來實踐一下。
其實也已經這么多集了,大致也都明白了,這集的方式稍微有點不同,用了一下vs自帶的WCF config編輯器,而不是以前純粹手寫的xml代碼。
?
1. 新建一個空的解決方案,添加一個類庫,刪除自動生成.cs 文件,再添加一個wcf項目,取名HelloService。
2. 自動的,該項目會添加一個接口文件,一個類文件,一個app.config文件。 config文件暫時先不管。
3. 簡單的修改一下IHelloService。
[ServiceContract]public interface IHelloService{[OperationContract]string GetMessage(string name);}然后是接口實現部分。
public class HelloService : IHelloService{public string GetMessage(string name){return "Hello " + name;}}然后編譯一下,讓他生成dll,后面會用到。
4. 接下去給該解決方案添加一個console application。并且設置為啟動項。
5. 添加對上面HelloService的引用。再添加一個app.config文件。
到這一步之后以前的做法就copy 第2步生成的config文件內容,paste到這里面,然后稍微手動修改一下。再刪掉原來項目中的config文件。這次不一樣。
6. 右擊host下面的App.config,有個編輯WCF配置的選項。
7. 首先要來配置一個service所需要的ABC三個屬性。
選中servcies,點擊Create a New Service,然后Browse,定位到第3步生成的dll。
8. Next。我們就一個Contract,所以繼續Next。
9. 選擇需要的Binding。
?
10.? 第一個比較簡單,第二個看意思高級一點,什么分布式啊, 可靠性啊,雙向通信什么的。反正我也不懂。。。
11. 繼續Next。寫地址了。
這里支持相對地址或者絕對地址。這里用一下相對地址,因為后面我們還要配一下BaseAddress。留個空吧。 繼續Next,就可以Finish了。
12. 添加BaseAddress
13. 啟用一下serviceMetadata讓客戶端能自己生成代理類。
14. 添加完之后雙擊這個serviceMetadata,設置HttpGetEnabled = true
15. 然后把這個behavior和我們的service 關聯起來。
保存一下就可以關閉了。
然后check一下host下面的App.config 文件內容。基本上該有的都有了。
然后是寫個測試的application,winform或者console都可以,沒有問題。
?
這次講解了一下4個host WCF service的方式的第一種 self-host,以及他的優缺點。
Thank you!
轉載于:https://www.cnblogs.com/sheldon-lou/p/4983939.html
總結
以上是生活随笔為你收集整理的WCF 入门(23,24)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 我的iOS学习历程 - UISlider
- 下一篇: 进击的UI---------------