WCF Service Configuration Editor的使用
2014-06-13
通过WCF Service Configuration Editor的配置
修改Client端
在上篇文章创建一个简单的WCF程序中, 使用WCF Service Configuration Editor工具生成XML文件来进行WCF的配置,而不是在CS文件中敲代码。
通过WCF Service Configuration Editor的配置
返回
以下是使用WCF Service Configuration Editor的的操作步骤:
1.打开VS,在Hosting项目中右键,新建一个App.config文件。
2.点击菜单栏Tools选项,在下拉菜单中选择WCF Service Configuration Editor。
3.在弹出的工具窗口中选择“File->open->Config File”。找到刚才建的App.config文件,并打开。
4.新建一个服务,如下图所示,先点击“创建新的服务”链接,再找到Service项目中的WcfServices.Services.CalculatorService服务。
5.点击下一步,找到Contracts项目中的ICalculator契约。
6.下一步,选择Http的通信方式。
7.点击下一步,选择Basic Web Service Interoperability。
8.点击下一步,输入服务端Endpoint地址: http://localhost:8080/calculatorservice 。下一步Finish。
9.为服务添加行为(Behavior),这步很重要。在Advanced目录下,右键新建一个Service行为,New Service Behavior Configuraton。然后对行为重命名为CalculatorBehavior,并设置HttpGetEnabled为true。如下图所示:
10.这些做好了之后,我们回到最上面的Service目录,为Calculator服务添加刚才配的CalculatorBehavior行为配置。如下图所示:
11.接着配置Host的地址,选中Host,然后点击右下方的New Base Address,输入: http://localhost:8080/calculatorservice
12.可以新添加一个服务端的Endpoint,用于配置WS-MetadataExchange,当然也可以不加。在Services目录下的Endpoint右键,新建一个Endpoint,名字和地址随意,保证Binding是mexHttpBinding。
13.Ctrl+S保存,这样App.config文件就自动写满了,如下:
1 <?xml version="1.0" encoding="utf-8" ?> 2 <configuration> 3 <system.serviceModel> 4 <behaviors> 5 <serviceBehaviors> 6 <behavior name="CaclulaterBehavior"> 7 <serviceMetadata httpGetEnabled="true" /> 8 </behavior> 9 </serviceBehaviors> 10 </behaviors> 11 <services> 12 <service behaviorConfiguration="CaclulaterBehavior" name="WcfServices.Services.CalculatorService"> 13 <endpoint address="http://localhost:8080/calculatorservice" binding="basicHttpBinding" 14 bindingConfiguration="" contract="WcfServices.Contracts.ICalculator" /> 15 <host> 16 <baseAddresses> 17 <add baseAddress="http://localhost:8080/calculatorservice" /> 18 </baseAddresses> 19 </host> 20 </service> 21 </services> 22 </system.serviceModel> 23 </configuration>
14。修改Hosting类的代码,删改后如下:
using System; using System.ServiceModel; using WcfServices.Services; namespace WcfServices.Hosting { class Program { static void Main(string[] args) { using (ServiceHost host = new ServiceHost(typeof(CalculatorService))) { host.Opened += delegate { Console.WriteLine("CalculaorService have started, press any key to stop it!"); }; host.Open(); Console.Read(); } } } }
注意:
1 <endpoint address="" binding="basicHttpBinding" name="Calculator" Contract="Contracts.ICalculator" > 2 <host> 3 <baseAddress> 4 <add baseAddress="http://localhost:8080/CalculatorService"/> 5 </baseAddress> 6 </host>
endpiont的地址为空,只是配了Host的基地址。当然也可以直接配Endpoint的地址,不配Host的基地址。但如果host了多个服务呢?有多了Endpoint挂在同一个host下,那么配基地址就显得很重要。
修改Client端
返回
打开客户端的项目(服务端不要关闭),选择Client项目下的Service Reference,在你的服务命名空间上右键,点击Update Service Reference。会生成新的app.config文件。
ClientApp的代码无须改变
参考:
[1] WCF Service Configuration Editor的使用 http://www.cnblogs.com/judastree/archive/2012/08/26/2657555.html
WCF Service Configuration Editor的使用,布布扣,bubuko.com