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地址
IIS 中托管基于TCP绑定的WCF服务的更多相关文章
- 基于MSMQ绑定的WCF服务实现总结
一. 创建消息队列 1 1) 创建一个非事物性的私有队列 1 2)设置消息队列访问权限 2 二.创建WCF服务并绑定消息队列 4 1)创建HelloService服务 4 ...
- 将使用netTcp绑定的WCF服务寄宿到IIS7上全记录 (这文章也不错)
原文地址:http://www.cnblogs.com/wengyuli/archive/2010/11/22/wcf-tcp-host-to-iis.html 摘要 在项目开发中,我们可能会适时的选 ...
- Fixed-Length Frames 谈谈网络编程中应用层(基于TCP/UDP)的协议设计
http://blog.sina.com.cn/s/blog_48d4cf2d0101859x.html 谈谈网络编程中应用层(基于TCP/UDP)的协议设计 (2013-04-27 19:11:00 ...
- net.tcp协议的wcf服务在远程计算机无法调用问题分析
可能原因1:net.tcp监听端口服务没有启动. 可能原因2:防火墙阻止了端口服务器路径访问. 可能原因3:配置文件路径endpoint路径和引用路径不一致 可能原因4:权限受限制.
- 搭建基于asp.net的wcf服务,ios客户端调用的实现记录
一.写wcf 问题: 1.特定的格式 2.数据绑定 3.加密解密 二.发布到iis 问题: 1.访问权限问题,添加everyone权限 访问网站时:http://localhost/WebbUploa ...
- 实验09——java基于TCP实现客户端与服务端通信
TCP通信 需要先创建连接 - 并且在创建连接的过程中 需要经过三次握手 底层通过 流 发送数据 数据没有大小限制 可靠的传输机制 - 丢包重发 包的顺序的 ...
- 在 IIS 中承载 WCF 服务
本主题概述了创建 Internet 信息服务 (IIS) 中承载的 Windows Communication Foundation (WCF) 服务所需的基本步骤. 本主题假设您熟悉 IIS 且了解 ...
- WCF使用net.tcp绑定时的注意事项
IIS Express没有net.tcp绑定功能,本地测试的话只能使用本机的IIS进行承载,并且需要相应的配置(参见上一篇文章). 算了,直接举一个配置例子吧,懒得写了... <system.s ...
- 创建WCF服务寄宿到IIS
一.WCF简介: Windows Communication Foundation(WCF)是由微软开发的一系列支持数据通信的应用程序框架,可以翻译为Windows 通讯开发平台. 整合了原有的win ...
随机推荐
- jquery.lazyload插件实现图片延迟加载
jquery.lazyload是一个实现图片延迟加载的jQuery 插件,它可以延迟加载长页面中的图片.在浏览器可视区域外的图片在初始状态下不会被载入,直到用户将页面滚动到它们所在的位置. 1.引入j ...
- C/C++练习题(三)
1.对下面两个文件编译后,运行会输出什么? // 第一个文件a.c #include <stdio.h> extern char p[]; extern void f(); int mai ...
- Chapter 3 Phenomenon——8
I turned to sit up, and this time he let me, releasing his hold around my waist and sliding as far f ...
- C/C++内存管理详解
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄 ...
- Ceph 块设备 - 命令,快照,镜像
目录 一.Ceph 块设备 二.块设备 rbd 命令 三.操作内核模块 四.快照基础 rbd snap 五.分层快照 六.镜像 rbd mirror 七.QEMU 八.libvirt 九.Openst ...
- Ripple(瑞波币)validator-keys-tool 配置验证器
目录 Ripple(瑞波币)validator-keys-tool配置验证器 验证器密钥工具指南 验证器密钥 验证器令牌(Validator Keys) public_key撤销 签名 Ripple( ...
- HDU 2682 Tree(Kruskal算法求解MST)
题目: There are N (2<=N<=600) cities,each has a value of happiness,we consider two cities A and ...
- Sql函数的三种写法
以前复制的创建sql函数比较乱,现在将我自己项目中的三种sql函数做下对比,一目了然: (1)表值函数——方法一:直接创建临时表,并返回临时表.优点:函数体中间可以直接申明临时变量,并做各种逻辑处理, ...
- Java学习--内置对象(其他的)
- elasticsearch 6.3 安装手记
系统环境 centos 7 elasticsearch 6.3 需要 JDK 8 版本,先安装 JDK 8. ES6.3 安装地址: https://www.elastic.co/guide/en/e ...