整个solution结构例如以下:
以下介绍每一个project:
1. Service.Interface 定义契约
ICalculator.cs
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="border:none; max-width:100%">
2. Service 实现服务
Calculator.cs
3. Hosting:公布服务
App.config
Program.cs
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >
4. Client: 调用服务
App.config
Program.cs
‘
build solution,运行Hosting,Host成功:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="max-width:100%; color:rgb(54,46,43); font-family:Arial; font-size:14.0000009536743px; line-height:25.9999980926514px; border:none">
执行client,出现下面error:
Root Cause:Hosting的program.cs文件中,使用了usingkeyword,所以当服务host起来之后。创建的两个ServiceHost对象就会被dispose掉 ,全部找不到服务,出现这个error。
Solution:使用例如以下方式:
然后执行,执行成功: