原文地址:http://www.cnblogs.com/wengyuli/archive/2010/11/22/wcf-tcp-host-to-iis.html

摘要

在项目开发中,我们可能会适时的选择http或者tcp绑定的wcf服务,可以使用控制台来托管服务,也可以使用IIS来承载服务,由于IIS本身对于请求和异常的处理能力,使得我们可以省去很多开发精力而成为托管服务的首选,之前我做的WCF服务时托管在控制台的,今天摸索了一下采用tcp绑定的wcf托管到IIS7的过程,分享一下,希望能帮助到想移植服务到IIS的朋友。

实例

依然是以一个服务作为例子展开,我们新建一个WCF Application,默认有一个简单的服务Service1.svc,


代码

[ServiceContract] 
public interface IService1 

[OperationContract] 
string GetData(int value); 
}
public class Service1 : IService1 

public string GetData(int value) 

return string.Format("You entered: {0}", value); 

}
web.config的配置非常简单,自动生成不作介绍。

开始移植

接下来我们需要将这个普通的服务移植Host到IIS上,

第一.首先需要更改web.config文件,将服务配置为net.tcp绑定

配置文件如下:


代码

<system.serviceModel> 
<bindings> 
<netTcpBinding> 
<security mode="None"> 
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" /> 
<message clientCredentialType="Windows" /> 
</security> 
</binding> 
</netTcpBinding> 
</bindings> 
<services>
 <service behaviorConfiguration="MyBehavior" name="WCFService.Service1"> 
<endpoint address="" binding="netTcpBinding" contract="WCFService.IService1" bindingConfiguration="netTcpBindConfig"></endpoint> 
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" ></endpoint> 
</service>
 </services> 
<behaviors> 
<serviceBehaviors> 
<behavior name="MyBehavior" > 
<serviceMetadata/> 
<serviceDebug includeExceptionDetailInFaults="true" /> 
<dataContractSerializer maxItemsInObjectGraph="6553600"/> 
</behavior>
 </serviceBehaviors> 
</behaviors> 
</system.serviceModel>

第二,我们需要将WCF Application这个项目的属性更改一下,方便开发时的访问服务,右击服务的项目属性,切换到WEB页面

在创建虚拟目录时也许VS会提示需要安装IIS6的一些组件,那么我们按照提示打开”windows的更新安装“

要将WCF的tcp绑定方式的服务host在IIS上,首先你需要启用这个功能

其次,需要安装IIS6的兼容性和管理工具

等这些都做完之后你可以浏览一下服务了,但是有可能会遇到一个错误提示:

处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandl…

出现这个问题你需要确认两个问题,第一个是SVC的文件请求是哪个DLL来处理的,

第二个是确认等IIS7全部配置完毕后,需要重新将asp.net4.0注册到IIS上

在vs2010中再浏览一下服务http://localhost/WCFService/Service1.svc,发现已经OK了

于是,我们可以正常引用并使用这个服务了

引用服务完成后,调用的效果是:

源代码:http://files.cnblogs.com/wengyuli/WCFTcpHostToIIS.rar

将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)的更多相关文章

  1. 基于MSMQ绑定的WCF服务实现总结

    一. 创建消息队列    1 1) 创建一个非事物性的私有队列    1 2)设置消息队列访问权限    2 二.创建WCF服务并绑定消息队列    4 1)创建HelloService服务    4 ...

  2. 创建WCF服务寄宿到IIS

    一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的win ...

  3. WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

    原文:WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过<再谈IIS与ASP.NET管道>的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致 ...

  4. IIS 中托管基于TCP绑定的WCF服务

    IIS 中托管基于TCP绑定的WCF服务 一.创建一个基于TCP绑定的WCF服务 1.创建一个的简单的服务具体代码如下 服务契约定义 namespace SimpleService { // 注意: ...

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

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

  6. WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法

    本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内 ...

  7. 关于WCF引用方式之WCF服务寄宿控制台

    1.创建解决方案WCFService 依次添加四个项目,如上图,Client和Hosting为控制台应用程序,Service和Service.Interface均为类库. 2.引用关系 Service ...

  8. WCF服务寄宿应用程序

    1.先创建一个WCF服务库 2.创建一个Console控制台,服务将寄宿在该应用程序上,该程序一旦关闭,服务将停止. 控制台代码: using System; using System.Collect ...

  9. WCF服务寄宿到IIS

    一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台.整合了原有的wind ...

随机推荐

  1. 请输出in.txt文件中的2 4 6 8 9 10 12行

    in.txt文件: 学号 姓名 性别 年龄 1001 张三 男 18 1002 赵四 男 19 1003 李丽 女 18 1004 刘芳 女 32 1005 王五 男 54 1006 小明 男 32 ...

  2. 如何参与一个GitHub开源项目

    Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来,为开源尽一份绵薄之力.对于个人来讲,你把自己的项目托管到Github上并不表示你参与了Git ...

  3. 176. [USACO Feb07] 奶牛聚会

    #include<iostream> #include<cstdio> #include<cstring> #include<queue> #defin ...

  4. AES对称加密算法

    package cn.jsonlu.passguard.utils; import org.apache.commons.codec.binary.Base64; import javax.crypt ...

  5. Spring—请求映射之URL路径映射

    Spring2.5引入注解式处理器支持,通过@Controller 和 @RequestMapping注解定义我们的处理器类.并且提供了一组强大的注解:需要通过处理器映射DefaultAnnotati ...

  6. configSections(配置文件)

    转载:http://www.cnblogs.com/jhxk/articles/1609182.html 由于最近一个项目的数据库变动比较频繁, 为了减少数据层的负担, 打算采用.net的MVC框架, ...

  7. 从服务器将Oracle数据库导出到本地Oracle数据库的方法

     1.将服务器上的Oracle数据库导入到本地 在CMD模式下执行以下命令:   exp username1/password@服务器端数据库 file=本地硬盘:/文件名.dmp   例如: exp ...

  8. java 懒汉式--初步解决安全问题

    2016-07-28 00:10:14 懒汉式: class text { public String k;       private static text t=null;//右边代码结构比上边饿 ...

  9. 【COGS1672】难存的情缘

    [题目描述] 一天机房的夜晚,无数人在MC里奋斗着... 大家都知道矿产对于MC来说是多么的重要,但由于矿越挖越少,勇士们不得不跑到更远的地方挖矿,但这样路途上就会花费相当大的时间,导致挖矿效率底下. ...

  10. 【USACO 2.3.2】奶牛家谱

    [题目描述] 农民约翰准备购买一群新奶牛.在这个新的奶牛群中,每一个母亲奶牛都生两小奶牛.这些奶牛间的关系可以用二叉树来表示.这些二叉树总共有N个节点(3 <= N < 200).这些二叉 ...