zoukankan      html  css  js  c++  java
  • WCF开发实战系列二:使用IIS发布WCF服务

    上一篇中,我们创建了一个简单的WCF服务,在测试的时候,我们使用VS2008自带的WCFSVCHost(WCF服务主机)发布WCF服务,以便进行测试。这种VS2008内置的WCFSVCHost只适用于开发人员测试的使用,能进行WCF服务部署。这一篇文章中我们来看一下如何在IIS中部发布我们上一篇中做好的WCF服务。

    第一步:打开我们上一篇文章中建立的WCF服务项目。

    clip_image002
    图《1》

    第二步:新建WCF服务站点。在解决方案上右击,选择“添加”->“新建网站”,打开新建网站对话框。在“添加新网站”对话框中,我们选择“WCF服务”,并把网站的名子命名为“BookServiceHost”

    clip_image004
    图《2》
    建立起来的新的WCF服务站点的结果如下,其中在App_Code文件中自动为我们生成两个类文件:IService.cs和Service.cs。这两个文件对我们来说没有用,我们删掉。

    clip_image006
    图《3》

    第三步:在刚刚创建的WCF服务站点上添加对WCF服务库项目--Services项目的引用。

    clip_image008
    图《4》

    第四步:配置Service.svc文件。
    双击Service.svc文件,我们可以看到它的声明指示如下:
    <%@ ServiceHost Language="C#" Debug="true" Service="Service" CodeBehind="~/App_Code/Service.cs" %>
    由于在第二步中我们已经把IService.cs和Service.cs两个文件已经删除了,所以这里的声明指示内容修改一下,让这个Service.svc文件的后台代码指向我们上次创建的WCF服务库项目--Services项目中的类,改后的代码如下:
    <%@ ServiceHost Language="C#" Debug="true" Service="Services.BookService"%>
    我们把其中的Service属性指定为Services命名空间下的BookService类,并把CodeBehind属性删去了。

    第五步:配置此WCF服务站点与WCF服务库项目之间的类的对应。
    虽然在第三步中我们添加了对Services项目的引用,并且在第四步中修改了Service.svc的类的对应,但此时我们的WCF服务站点并不能把WCF服务库中的服务和终结点发布出来,还需要我们对web.config进行一系列的配置工作。
    在web.config上右击选择“编辑WCF配置”

    clip_image010
    《图5》
    在弹出的服务配置窗口中,把Service服务指定到WCF服务库的Services.dll中的Services.BookService服务类上。

    clip_image011
    《图6》
    再把其中的一个对外终结点的Contract设为WCF服务库的Services.dll中的Services.IBookService服务契约上。

    clip_image012
    《图7》

    第六步:试着再添加一个通信的终结点。
    这一步是可选的,我们再为此WCF服务站点添加一个终结点,A=basic B=basicHttpBinding C=Services.IBookService

    clip_image013
    《图8》
    下面我们将试着使用不同的终结点与WCF服务进行交互,查看运行情况。
    当我们使用IIS5或IIS6发布WCF服务的时候一般只创建Http绑定的终结点,而不能创建使用TCP绑定、管道绑定的终结点。

    第七步:测试运行WCF服务站点。
    在Service.svc上右击,选择“在浏览器中查看”,在IE中运行此服务。

    clip_image014
    《图9》
    由此我们看到我们可以在ASP.NET Development Server中发布我们的WCF服务了。

    第八步:在IIS布署此WCF服务站点。
    在IIS建立Web应用程,指向我们的WCF服务站点所在的目录。然后在IIS运行我们发布的WCF服务

    clip_image015
    《图10》
    从上图中我们看到发布的站点中不再包含有端口号。
    到此为至我们在IIS中发布WCF服务成功。

    下面我们在WCF测试客户端调用我们刚刚在IIS中发布的WCF服务
    第九点:在VS2008命令窗口中输入以下代码运行WCF测试客户端
    x:\...\wcftestclient http://localhost/TestWCFService/Service.svc
    弹出测试窗口如下:

    clip_image016
    《图11》
    我们可以看到发布的服务中有两个终结点:这两个终结点的传输方式不同,但提供的方法是相同的。
    我们通过第一个终结点的AddBooks()方法添加三个对象。

    clip_image017
    《图12》
    再通过第二个终结点的GetAllBooks()方法取得所有对象的信息。

    clip_image018
    《图13》
    运行完全没问题。

  • 相关阅读:
    面向对象的继承关系体现在数据结构上时,如何表示
    codeforces 584C Marina and Vasya
    codeforces 602A Two Bases
    LA 4329 PingPong
    codeforces 584B Kolya and Tanya
    codeforces 584A Olesya and Rodion
    codeforces 583B Robot's Task
    codeforces 583A Asphalting Roads
    codeforces 581C Developing Skills
    codeforces 581A Vasya the Hipster
  • 原文地址:https://www.cnblogs.com/stragon/p/2239414.html
Copyright © 2011-2022 走看看