zoukankan      html  css  js  c++  java
  • 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)

    原文地址: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页面

    image

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

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

    image

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

    image

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

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

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

    image

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

    image

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

    image

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

    image

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

    image

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

  • 相关阅读:
    关于ajax入门案例
    关于idea maven工程创建struts2入门配置及案例
    hibernate关于多对多注解配置
    hibernate关于一对一注解配置
    hibernate批量处理数据
    HQL链接查询
    关于hibernate组件配置
    VS2010 项目属性的默认包含路径设置方法
    VC++的全局变量(转)
    调用文字在位编辑器
  • 原文地址:https://www.cnblogs.com/niaowo/p/4673091.html
Copyright © 2011-2022 走看看