如何使用svconfigeditor.exe编辑WCF Service配置文件-配置一个基本的Endpoint(一)
1.svcconfigeditor简介
WCF Service的难点之一就是其千变万化的配置。如果直接手工书写,很容易出错而且效率低下。Microsoft .Net SDK中专门有一个可视化编辑工具名为svcconfigeditor.exe,该文件一般位于c:\program files\Microsoft SDKS\windows\v6.0A\Bin下面. svcconfigeditor.exe是一个强大的用来配置WCF service服务器端和客户器端配置文件的可视化工具
2.svcconfigeditor使用指南
当我们开发了一个WCF service并要将其deploy或者debug的时候,这时候我们就需要为其address,binding,contract,behavio等等涉及安全、认证、授权等做一些设定。这时就是svcconfigeditor.exe大显身手的时候了。
首先在需要配置WCF Service config的工程中,点击Add->New Item ->App.config。 选择app.config,点击右键选择open with,然后选择svcconfigeditor.exe来对该文件进行编辑
图1:svcconfigeditor启动画面
然后点击create a new service,弹出创建service向导,然后选择实现经过compile的assembly,该工具会自动检测到该assembly中定义的service type 和 service contract,点击next, 弹出binding选项对话框,如下所示:
图2:预绑定协议选择
by default为http,我们可以根据自己WCF service运行环境的需要选择合适的binding协议,点击next
弹出interoperability option对话框。如果要实现较为复杂的如安全,可信赖会话,异步通讯等,请选择Advanced选项,否则选择basic选项,点击next
弹出endpoint address选项框。一般来说,此处只需要填写一个relative address即可,完整地endpoint address = base address + endpoint relative address.因此后面还需要编辑若干个base address。 并且对于某一个endpoint relative address 来说,到底选择哪一个base address,与该endpoint所选择的binding protocal有关,其会自动进行匹配。
比如我们有2个base address, 分别为:http://localhost:8080/service 和 net.tcp://localhost:8081/service, 假设某个WCf service,我们为其定义了2个Endpoint 配置如下:
<endpoint Address="Myservice" binding="netTcpBinding" contract="WCF.IMyService"/>
<endpoint Address="MyService" binding="wsHttpBinding" contract="WCF.IMyService"/>
则对于第一个endpoint,其会自动匹配net.tcp://localhost:8081/service这个base address, 而对于第一个endpoint,其会匹配http://localhost:8080/service 这个base address
还有一点需要说明的是:如果我们发布了通过http发布了service的metadata的话,在没有指定metadata http address的情况下, base address of http scheme 即为metadata发布地址by default.
经过以上步骤,我们就为一个WCF service配置好了一个基本的endpoint(主要是ABC),如下所示