上接    WCF学习之旅—WCF服务部署到IIS7.5(九)

WCF学习之旅—WCF服务部署到应用程序(十)

WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

八、WAS宿主

  IIS7允许通过HTTP外的协议进行激活和网络通信。此环境适合开发可通过 WCF支持的任何网络协议(包括http、net.tcp、net.pipe、net.msmq)进行通信的WCF服务。部署简单、管理方便,这些网络协议在部署时可像Http一样,直接丢到IIS7上即可,我们在下面的例子中以net.tcp为协议为例。IIS7以下的版本只能支持Http的通信。

  1、确保已安装IIS7的激活组件

  在应用WAS宿主时,必须确保IIS7的激活组件安装好。打开“控制面板”-->“打开或关闭Windows功能”-->对话框“Windows功能”中查看“Microsoft .NET Framework 3.5.1”中的“WCF的HTTP激活”与“WCF的非HTTP激活”。如果没安装,请安装。如下图所示。

如果没有安装,“勾选相应的功能”,然后点击“确定”,进行安装。如下图所示:

安装成功后我们打开IIS,点击“网站”-->“新建网站”,如下图。

在“添加网站”对话框中,根据如下图填写相应的信息,在绑定信息中填写“808:*”,给网站添加net.tcp协议。如下图所示

如果只添加了net.tcp协议,则网站无法启动,如下图。

使用鼠标点击WCFWAS网站,需要再次添加HTTP协议。如下图。

设置成功之后,如下图。

 

  2、开通net.tcp的协议 

  在安装成功并且在指定的网站上绑定了net.tcp以后,我们还要开通.net.tcp协议,点击我们要部署WCF的网站,在IIS管理器的操作功能区有一项“高级设置”点击后出现如下图所示高级配置的窗体

  在启用的协议中添加net.tcp协议(原来只对http协议支持,现在把tcp协议追加上去),中间用逗号隔离开,如上图所示。

  注意:这几个步骤一个也不能少,否则会出现:“找不到具有绑定 NetTcpBinding 的终结点的与方案 net.tcp 匹配的基址。注册的基址方案是 [http]”的错误信息。

  3、建立服务程序

  (1)在解决方案下新建WCF服务应用程序项目 WCFHost_WAS。

  (2)建立IUser与User,代码同例二一样。

  (3)修改配置文件Web.config代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
</system.webServer>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="netTcpBindConfig">
<security mode="None">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" /> </security>
</binding>
</netTcpBinding>
</bindings> <services> <service behaviorConfiguration="BookBehavior" name="WcfServiceLib.BookService"> <endpoint address="" binding="netTcpBinding" contract="WcfServiceLib.IBookService" bindingConfiguration="netTcpBindConfig"></endpoint> <!--元数据交换的终结点-->
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" ></endpoint>
</service> </services>
<behaviors>
<serviceBehaviors>
<behavior name="BookBehavior" > <serviceMetadata/>
<serviceDebug includeExceptionDetailInFaults="true" /> <dataContractSerializer maxItemsInObjectGraph="6553600"/> </behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel> <system.web>
<compilation defaultLanguage="c#" />
</system.web>
</configuration>

  4、部署服务

  像其他的Web应用程序一样,把相关的文件丢到服务器端指定目录即可。

  鼠标右键浏览User.svc,如现如下所示:

  说明部署成功,如上所示的服务地址为:net.tcp://服务器名/User.svc/mex

  5 、建立客户端

(1)在WinClient项目中,添加对服务的引用(在引用上右键-->输入我们定义的服务宿主的基地址(此处为:net.tcp://developer/BookService.svc/mex-->转到-->确定)。如下图。

(2) 在From1中添加一个“WAS获取BOOK”按钮。如下图。

(3) 在btnWAS_Click事件中添加如下代码

  private void btnWAS_Click(object sender, EventArgs e)
{ WASBookWCF.BookServiceClient client = new WASBookWCF.BookServiceClient();
string book = client.GetBook("");
textBox1.Text = book; }

  (4) 我们此时看客户端的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup> <system.serviceModel>
<bindings>
<netTcpBinding>
<bindingname="NetTcpBinding_IBookService"> <securitymode="None" />
</binding>
</netTcpBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_IBookService" /> </wsHttpBinding> </bindings>
<client>
<endpoint address="http://localhost:8080/BookService" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IBookService" contract="BookServiceReference.IBookService" name="WSHttpBinding_IBookService">
<identity>
<userPrincipalName value="DEVELOPER\Administrator" /> </identity>
</endpoint>
<endpointaddress="net.tcp://developer/BookService.svc"binding="netTcpBinding" bindingConfiguration="NetTcpBinding_IBookService"contract="WASBookWCF.IBookService" name="NetTcpBinding_IBookService" />
</client>
</system.serviceModel>
</configuration>

(5) 点击“WAS获取BOOK”按钮,最终结果如下。

 

WCF学习之旅—WCF服务的WAS寄宿(十二)的更多相关文章

  1. WCF学习之旅—WCF服务部署到IIS7.5(九)

    上接   WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以 ...

  2. WCF学习之旅—WCF服务部署到应用程序(十)

    上接  WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下 ...

  3. WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...

  4. WCF学习之旅—WCF服务的批量寄宿(十三)

    上接    WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF ...

  5. WCF学习之旅—第三个示例之三(二十九)

    上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...

  6. WCF学习之旅—WCF第二个示例(五)

    二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对 ...

  7. WCF学习之旅—WCF第二个示例(七)

    三.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据. 在第一个步骤中,你将 Windows 窗体项目添加到解 ...

  8. WCF学习之旅—WCF第二个示例(六)

    第五步,创建数据服务 在“解决方案资源管理器”中,使用鼠标左键选中“SCF.WcfService”项目,然后在菜单栏上,依次选择“项目”.“添加新项”. 在“添加新项”对话框中,选择“Web”节点,然 ...

  9. WCF学习之旅—实现支持REST客户端应用(二十四)

    WCF学习之旅—实现REST服务(二十二) WCF学习之旅—实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持RES ...

随机推荐

  1. H5实现摇一摇技术总结

    摇一摇遇到的问题 一.如何对摇晃效果进行反馈 刚开始的处理方式是,摇晃过程中不做任何处理,但后来反馈说这种效果不好,好像就没有摇动一样,如果声音也不响的话,就真的和什么都没发生一样. 后来想了想,加入 ...

  2. Connect() 2016 大会的主题 ---微软大法好

    文章首发于微信公众号"dotnet跨平台",欢迎关注,可以扫页面左面的二维码. 今年 Connect 大会的主题是 Big possibilities. Bold technolo ...

  3. HTML块级元素

    前面的话   在HTML5出现之前,人们一般把元素分为块级.内联和内联块元素.本文将详细介绍HTML块级元素 h   标题(Heading)元素有六个不同的级别,<h1>是最高级的,而&l ...

  4. dubbo服务提供与消费

    一.前言 项目中用到了Dubbo,临时抱大腿,学习了dubbo的简单实用方法.现在就来总结一下dubbo如何提供服务,如何消费服务,并做了一个简单的demo作为参考. 二.Dubbo是什么 Dubbo ...

  5. Hive安装配置指北(含Hive Metastore详解)

    个人主页: http://www.linbingdong.com 本文介绍Hive安装配置的整个过程,包括MySQL.Hive及Metastore的安装配置,并分析了Metastore三种配置方式的区 ...

  6. 谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

    开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉 ...

  7. CentOS下mysql数据库常用命令总结

    mysql数据库使用总结 本文主要记录一些mysql日常使用的命令,供以后查询. 1.更改root密码 mysqladmin -uroot password 'yourpassword' 2.远程登陆 ...

  8. Hadoop学习之旅二:HDFS

    本文基于Hadoop1.X 概述 分布式文件系统主要用来解决如下几个问题: 读写大文件 加速运算 对于某些体积巨大的文件,比如其大小超过了计算机文件系统所能存放的最大限制或者是其大小甚至超过了计算机整 ...

  9. continue break 区别

    在循环中有两种循环方式 continue , break continue 只是跳出本次循环, 不在继续往下走, 还是开始下一次循环 break  将会跳出整个循环, 此循环将会被终止 count = ...

  10. Maven 代理设置

    在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies>    <!-- proxy     | Specificatio ...