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

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


一、创建一个基于TCP绑定的WCF服务

1、创建一个的简单的服务具体代码如下

服务契约定义
namespace SimpleService
{
      // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IHelloService”。
      [ServiceContract]
      public interface IHelloService
      {
          [OperationContract]
          string GetMessage(string message);
      }
}
服务具体方法实现
namespace SimpleService
{
    // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的类名“HelloService”。
    public class HelloService : IHelloService
    {
        public string GetMessage(string message)
        {
            return message + "\t" + DateTime.Now;
        }
    }
}
在Web应用程序中创建SVC文件指向服务代码
 <%@ ServiceHost Language="C#" Debug="true" Service="SimpleService.HelloService" %>
具体配置文件设置如下
  <system.serviceModel>
    <services>
      <service name="SimpleService.HelloService" behaviorConfiguration="HttpGetEnable">
        <!--设置绑定协议为TCP协议-->
        <endpoint address="" bindingConfiguration="NoneSecurity" binding="netTcpBinding" contract="SimpleService.IHelloService">
        </endpoint>
        <!--源数据访问节点-->
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange">
        </endpoint>
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <!--允许端口共享,使其他基于TCP绑定的WCF服务也能使用808端口-->
        <binding name="NoneSecurity" portSharingEnabled="true">
          <!--取消安全验证-->
          <security mode="None">
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <!--允许通过http协议获取源数据-->
        <behavior name="HttpGetEnable">
          <serviceMetadata httpGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
    <!--启用多站点绑定,方便使用IP地址或者域名访问-->
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true">
    </serviceHostingEnvironment>
  </system.serviceModel>
  <system.webServer>
    <!--启用目录浏览方便使用-->
    <directoryBrowse enabled="true"/>
  </system.webServer>
解决方案具体配置如下

二、设置 IIS增加非Http协议支持

打开控制面——选择大图标——程序和功能——启用或关闭windows功能——勾选.net3.5中非Http激活,如果是win8/8.1/10则需要勾选.net4.6中所有的高级功能

在IIS中创建要托管的站点目录指向WCF服务Web宿主所在目录

增加站点非HTTP绑定支持

右键选择站点——编辑绑定——添加——类型选择net.tcp——绑定信息808:*


设置站点支持net.tcp协议,右键站点——管理网站——高级设置——已启用的协议——添加net.tcp

三、最终效果


在浏览器中访问站点的SVC文件,效果如下图


源数据中可以看到已经是net.tcp绑定

在WCFTestClient中调用服务

添加服务地址


调用服务


服务客户端配置文件信息

后记

在正式使用中应将客户端配置文件中的主机地址替换为主机的IP地址

时间: 2024-11-01 13:27:09

IIS 中托管基于TCP绑定的WCF服务的相关文章

搭建基于asp.net的wcf服务,ios客户端调用的实现记录

一.写wcf 问题: 1.特定的格式 2.数据绑定 3.加密解密 二.发布到iis 问题: 1.访问权限问题,添加everyone权限 访问网站时:http://localhost/WebbUploadSample/ZipUpload.aspx “/WebbUploadSample”应用程序中的服务器错误. -------------------------------------------------------------------------------- 访问被拒绝. 说明: 访问服

Java中的基于Tcp协议的网络编程

一:网络通信的三要素? IP地址     端口号     通信协议 IP地址:是网络中设备的通信地址.由于IP地址不易记忆,故可以使用主机名.本地环回地址,127.0.0.1   本地主机名localhost 端口号:发送端准备的数据要发送到指定的目的应用程序上,为了标识这些应用程序,所以用网络数字来标识这些不同的应用程序,这些数 字称为端口号.端口号是不同进程之间的标识.一般来说,有0~65535的端口可供使用,但是1~1024系统使用,或者称作保留端口. 通信协议:指定义的通信规则,这个规则

在 IIS 中承载 WCF 服务

本主题概述了创建 Internet 信息服务 (IIS) 中承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤. 本主题假设您熟悉 IIS 且了解如何使用 IIS 管理工具创建和管理 IIS 应用程序. 有关以下内容的详细信息请参阅 IIS Internet Information Services AWCF在 IIS 环境中运行的服务充分利用 IIS 功能,如进程回收. 空闲关闭. 进程状况监视和基于消息的激活. 此宿主选项要求正确配置 I

创建WCF服务寄宿到IIS

一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的windows通讯的 .net Remoting,WebService,Socket的机制,并融合有HTTP和FTP的相关技术. 由 .NET Framework 3.0 开始引入. WCF的最终目标是通过进程或不同的系统.通过本地网络或是通过Internet收发客户和服务之间的消息. WCF合并了Web

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理

Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理 通常我们会用Nginx的upstream做基于http/https端口的7层负载均衡,由于Nginx老版本不支持tcp协议,所以基于tcp/udp端口的四层负载均衡一般用LVS或Haproxy来做.至于4层负载均衡和7层负载均衡的区别,可以参考:http://www.cnblogs.com/kevingrace/p/6137881.html.然而Nginx从1.9.0版本开始,新增加了一个stream模块,用来实现四层协

WCF服务编程 读书笔记——第1章 WCF基础(1)

第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Binding).契约(Contract)和终结点(Endpoint):了解如何托管服务,如何编写客户端代码:了解WCF的相关主题,诸如进程内托管(In-Proc Hosting)以及可靠性的实现.即使你已经熟知WCF的基本概念,仍然建议你快速浏览本章的内容,它不仅能够巩固你的已有知识,而且本章介绍的一

WCF初探-9:WCF服务承载 (下)

在WCF初探-8:WCF服务承载 (上)中,我们对宿主的概念.环境.特点做了文字性的介绍和概括,接下来我们将通过实例对这几种寄宿方式进行介绍.为了更好的说明各寄宿环境特点,本实例采用Http和net.tcp两种服务通讯方式,同时寄宿在不同的宿主中.程序结构如下: 服务契约的接口和实现代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Ser

请介绍WCF服务

WCF本质上提供一个跨进程.跨机器以致跨网络的服务调用 WCF合并了Web服务..net Remoting.消息队列和Enterprise Services的功能并集成在Visual Studio中,WCF专门用于面向服务开发. Contracts 定义服务契约(Service Contract)引用System.ServiceMode程序集 [ServiceContract],来说明接口是一个WCF的接口. [OperationContract],来说明该方法是一个WCF接口的方法,不加的话同

WCF系列教程之WCF服务宿主

本文参考自http://www.cnblogs.com/wangweimutou/p/4377062.html,纯属读书笔记,加深记忆. 一.简介 任何一个程序的运行都需要依赖一个确定的进程中,WCF也不例外.如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文和生存期的运行时环境当中,承载服务的环境,称之为宿主.WCF服务可以在支持托管代码的任意Windows进程中运行.WCF提供了统一编程模型,用于生成面向服务的应用程序.此编程模型保持一致且独立于部署服务的运行时环境