使用VS自带的WCFSVCHost(WCF服务主机)发布WCF服务,时刻开发人员测试使用。
下面我们来看一下如何在IIS中部发布一个WCF服务。
环境是VS 2008 (公司电脑没有安装VS2010)^_^
我们从头开始,不写代码,完全的配置,会收获不小。
新建一个WCF 服务库
建立一个WCF服务应用程序
结果如下
删除掉WCF程序中不需要的默认文件,如下图
为WcfService1项目添加WcfServiceLibrary1的引用,如下图。
修改声明指示内容,让这个Service.svc文件的后台代码指向我们创建的WCF服务库项目--WcfServiceLibrary1项目中的服务类,改后的代码如下:
<%@ ServiceHost Language="C#" Debug="true" Service="WcfServiceLibrary1.Service1" %>
Ctrl+Shift+B 编译一下解决方案,配置工具用的反射,先编译才行
此时我们的WCF服务站点并不能把WCF服务库中的服务和终结点发布出来,还需要我们对web.config进行一系列的配置工作。
右键我们要配置的Web.Config文件,编辑WCF配置
在弹出的服务配置窗口中,把Service1服务指定到WCF服务库的WcfServiceLibrary1.dll中的WcfServiceLibrary1.Service1服务类上。
再把其中的一个对外终结点的Contract设为WCF服务库的WcfServiceLibrary1.dll中的WcfServiceLibrary1.IService1服务契约上。
这一步是可选的,我们再为此WCF服务站点添加一个终结点,配置如下图
下面我们将试着使用不同的终结点与WCF服务进行交互,查看运行情况。
当我们使用IIS5或IIS6发布WCF服务的时候一般只创建Http绑定的终结点,而不能创建使用TCP绑定、管道绑定的终结点。
测试服务
在Service1.svc上右击,选择“在浏览器中查看”,在IE中运行此服务。
由此我们看到我们可以在ASP.NET Development Server中发布我们的WCF服务了。
右键WcfService1项目,找到Web选项卡,使用IIS调试,就是部署在IIS的虚拟目录上了
设置默认启动页面为,Service1.svc 按F5
在WCF测试客户端调用我们刚刚在IIS中发布的WCF服务, 关于更多WCF 测试客户端(WcfTestClient.exe)
注意,使用下图的命令提示窗口,运行WcfTestClient
添加服务,并输入服务的地址,这是必须的
不得不感叹,微软的东西就是好用啊。
我们可以看到发布的服务中有两个终结点:这两个终结点的传输方式不同,但提供的方法是相同的。
附加内容
你可以通过上面的方法,集成多个Wcf服务库到WcfService1中来,动手试试吧
源代码:WcfIIS.rar