WCF学习之旅—WCF服务的WAS寄宿(十二)
上接 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寄宿(十二)的更多相关文章
- WCF学习之旅—WCF服务部署到IIS7.5(九)
上接 WCF学习之旅—WCF寄宿前的准备(八) 四.WCF服务部署到IIS7.5 我们把WCF寄宿在IIS之上,在IIS中宿主一个服务的主要优点是在发生客户端请求时宿主进程会被自动启动,并且你可以 ...
- WCF学习之旅—WCF服务部署到应用程序(十)
上接 WCF学习之旅—WCF寄宿前的准备(八) WCF学习之旅—WCF服务部署到IIS7.5(九) 五.控制台应用程序宿主 (1) 在解决方案下新建控制台输出项目 ConsoleHosting.如下 ...
- WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一)
上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) 七 WCF服务的Windows 服务程序寄宿 这种方式的服务寄宿,和IIS一样有一个一样 ...
- WCF学习之旅—WCF服务的批量寄宿(十三)
上接 WCF学习之旅—WCF服务部署到IIS7.5(九) WCF学习之旅—WCF服务部署到应用程序(十) WCF学习之旅—WCF服务的Windows 服务程序寄宿(十一) WCF学习之旅—WCF ...
- WCF学习之旅—第三个示例之三(二十九)
上接WCF学习之旅—第三个示例之一(二十七) WCF学习之旅—第三个示例之二(二十八) 在上一篇文章中我们创建了实体对象与接口协定,在这一篇文章中我们来学习如何创建WCF的服务端代码.具体步骤见下面. ...
- WCF学习之旅—WCF第二个示例(五)
二.WCF服务端应用程序 第一步,创建WCF服务应用程序项目 打开Visual Studio 2015,在菜单上点击文件—>新建—>项目—>WCF服务应用程序.在弹出界面的“名称”对 ...
- WCF学习之旅—WCF第二个示例(七)
三.创建客户端应用程序 若要创建客户端应用程序,你将另外添加一个项目,添加对该项目的服务引用,配置数据源,并创建一个用户界面以显示服务中的数据. 在第一个步骤中,你将 Windows 窗体项目添加到解 ...
- WCF学习之旅—WCF第二个示例(六)
第五步,创建数据服务 在“解决方案资源管理器”中,使用鼠标左键选中“SCF.WcfService”项目,然后在菜单栏上,依次选择“项目”.“添加新项”. 在“添加新项”对话框中,选择“Web”节点,然 ...
- WCF学习之旅—实现支持REST客户端应用(二十四)
WCF学习之旅—实现REST服务(二十二) WCF学习之旅—实现支持REST服务端应用(二十三) 在上二篇文章中简单介绍了一下RestFul与WCF支持RestFul所提供的方法,及创建一个支持RES ...
随机推荐
- Web性能优化:图片优化
程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...
- 在线浏览PDF之PDF.JS (附demo)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html#skill 下载地址:http://mozilla.gith ...
- 23种设计模式--观察者模式-Observer Pattern
一.观察者模式的介绍 观察者模式从字面的意思上理解,肯定有两个对象一个是观察者,另外一个是被观察者,观察者模式就是当被观察者发生改变得时候发送通知给观察者,当然这个观察者可以是多个对象,在项 ...
- JS与APP原生控件交互
"热更新"."热部署"相信对于混合式开发的童鞋一定不陌生,那么APP怎么避免每次升级都要在APP应用商店发布呢?这里就用到了混合式开发的概念,对于电商网站尤其显 ...
- Android业务组件化之URL Scheme使用
前言: 最近公司业务发展迅速,单一的项目工程不再适合公司发展需要,所以开始推进公司APP业务组件化,很荣幸自己能够牵头做这件事,经过研究实现组件化的通信方案通过URL Scheme,所以想着现在还是在 ...
- 在ASP.NET Core应用中如何设置和获取与执行环境相关的信息?
HostingEnvironment是承载应用当前执行环境的描述,它是对所有实现了IHostingEnvironment接口的所有类型以及对应对象的统称.如下面的代码片段所示,一个HostingEnv ...
- Hive on Spark安装配置详解(都是坑啊)
个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...
- InstallShield 脚本语言学习笔记
InstallShield脚本语言是类似C语言,利用InstallShield的向导或模板都可以生成基本的脚本程序框架,可以在此基础上按自己的意愿进行修改和添加. 一.基本语法规则 ...
- PHP之使用网络函数和协议函数
使用其他Web站点的数据 <html> <head> <title> Stock Quote From NASDAQ </title> </hea ...
- Java中,异常的处理及抛出
首先我们需要知道什么是异常? 常通常指,你的代码可能在编译时没有错误,可是运行时会出现异常.比如常见的空指针异常.也可能是程序可能出现无法预料的异常,比如你要从一个文件读信息,可这个文件不存在,程序无 ...