wcf将一个服务同时绑定到http和tcp的写法
服务器端:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DCourtDbConStr" connectionString="IRyiHYdvR0dghJ+3ltmD04Hpzc1LZjqPu1H49+L4iGRsL93jzDrmhZ2Jt2KGX2vzZJRuL8SwNYhHcBUPrcVhareMc5FHq6oR1GKyzOTuYJCUB1wid/hFyZi8S+QVi/NsNcQwKzeddPoaZSCCWYQ4P8t5arJE2WgY" providerName="DbOle" />
</connectionStrings>
<system.serviceModel>
<services>
<service name="DCourt.Service.DcDataService">
<!-- 这里是用来绑定http访问方式的 -->
<endpoint address="" binding="basicHttpBinding" name="webIn"
contract="DCourt.Service.IDcDataService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<!-- 这里是用来绑定tcp访问方式的 -->
<endpoint address=""
binding="netTcpBinding"
contract="DCourt.Service.IDcDataService"/>
<endpoint address="mex" binding="mexHttpBinding" name="mexIn"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8001/DcService"/>
<add baseAddress="http://localhost:8000/DcService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- 为避免泄漏元数据信息,
请在部署前将以下值设置为 false -->
<serviceMetadata httpGetEnabled="True"/>
<!-- 要接收故障异常详细信息以进行调试,
请将以下值设置为 true。在部署前设置为 false
以避免泄漏异常信息 -->
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
客户端(通过8000端口或者8001端口都可以用,上面的服务器端配置同时绑定了HTTP 8000端口和TCP8001端口)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="DCourtDbConStr" connectionString="IRyiHYdvR0dghJ+3ltmD04Hpzc1LZjqPu1H49+L4iGRsL93jzDrmhZ2Jt2KGX2vzZJRuL8SwNYhHcBUPrcVhareMc5FHq6oR1GKyzOTuYJCUB1wid/hFyZi8S+QVi/NsNcQwKzeddPoaZSCCWYQ4P8t5arJE2WgY" providerName="DbOle" />
</connectionStrings>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IDcDataService">
<security mode="None">
<transport clientCredentialType="None" />
<message clientCredentialType="UserName" />
</security>
</binding>
</basicHttpBinding>
<netTcpBinding>
<binding name="NetTcpBinding_IDcDataService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
transactionFlow="false" transferMode="Buffered" transactionProtocol="OleTransactions"
hostNameComparisonMode="StrongWildcard" listenBacklog="10"
maxBufferPoolSize="524288" maxBufferSize="65536" maxConnections="10"
maxReceivedMessageSize="65536">
<readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8000/DcService/" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IDcDataService" contract="DcDataSer.IDcDataService"
name="BasicHttpBinding_IDcDataService" />
<endpoint address="net.tcp://localhost:8001/DcService" binding="netTcpBinding"
bindingConfiguration="NetTcpBinding_IDcDataService" contract="DcDataSer.IDcDataService"
name="NetTcpBinding_IDcDataService" />
</client>
</system.serviceModel>
</configuration>
客户端代码
//using (DcDataServiceClient client = new DcDataServiceClient())//这个时候要注释掉其中一个endpoint
//using (DcDataServiceClient client = new DcDataServiceClient("NetTcpBinding_IDcDataService"))
using (DcDataServiceClient client = new DcDataServiceClient("NetTcpBinding_IDcDataService"))
{
DCArea[] lstAreas = client.GetAllDCAreas();
foreach (DCArea area in lstAreas)
{
ShowDbgInfo(area.DcName);
}
}
wcf将一个服务同时绑定到http和tcp的写法的更多相关文章
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序) 基于HTTP-GET的元数据发布方式与基于WS-MEX原理类似,但是ServiceMetad ...
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序)
原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于WS-MEX的实现](提供模拟程序) 通过<如何将一个服务发布成WSDL[编程篇]>的介绍我们知道了如何可以通过编程或者配 ...
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇]
原文:WCF技术剖析之二十七: 如何将一个服务发布成WSDL[编程篇] 对于WCF服务端元数据架构体系来说,通过MetadataExporter将服务的终结点导出成MetadataSet(参考< ...
- 解决WCF“接收对 http://xxx.svc 的 HTTP 响应时发生错误。这可能是由于服务终结点绑定未使用 HTTP 协议造成的。这还可能是由于服务器中止了 HTTP 请求上下文(可能由于服务关闭)所致"
最近在工作中新加了一个接口,本地调试的时候,直接抛出“接收对 http://xxx.svc 的 HTTP 响应时发生错误.这可能是由于服务终结点绑定未使用 HTTP 协议造成的.这还可能是由于服务器中 ...
- WCF 数据服务 4.5
.NET Framework 4.5 其他版本 WCF 数据服务(以前称为"ADO.NET Data Services")是 .NET Framework 的一个组件.可以使用此组 ...
- WCF中的标准绑定
使用过WCF的童鞋们都很清楚,绑定是必须的.我将这些绑定总结了下. 一.标准绑定简要说明 1.basicHttpBinding 基于WS-I Basic Profile 1.1 的web服务,所需的. ...
- WCF之服务元数据
服务元数据是用来获得服务的EndPoint的信息,也就是它的ABC. 服务有两种方案可以发布自己的元数据. 一种是基于HTTP-GET协议提供元数据: 一种是元数据交换方式,它往往使用一个专门的终结点 ...
- WCF SOA服务应用
WCF是微软官方推出的一个基于服务的整合框架,它整合了以前的Web Service.MSMQ.Remoting等通信技术,通过灵活的配置,让服务编程更加容易.可扩展.这篇文章主要目的就是带领大家从开发 ...
- WCF 配置服务 (02)
配置服务概述 • 在设计和实现服务协定后,即可配置服务. 在其中可以定义和自定义如何向客户端公开服务,包括指定可以找到服务的地址.服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型. • ...
随机推荐
- BZOJ5312: 冒险【线段树】【位运算】
Description Kaiser终于成为冒险协会的一员,这次冒险协会派他去冒险,他来到一处古墓,却被大门上的守护神挡住了去路,守护神给出了一个问题, 只有答对了问题才能进入,守护神给出了一个自然数 ...
- cratedb json 数据导入
基本环境的搭建,可以参考相关文档,或者直接使用docker 安装 docker run -d -p 4200:4200 crate 导出mongodb数据(可选,同时使用工具进行数据类型转换) mon ...
- 【转】Windows消息投递流程:WM_COMMAND消息流程
原文网址:http://blog.csdn.net/hyhnoproblem/article/details/6182585 该示例通过研究基本的单文档程序的“文件”--“打开”命令,分析WM_COM ...
- string学习
来自:http://www.cnblogs.com/kkgreen/archive/2011/08/24/2151450.html 0,new是创了两个对象,一个在堆,一个在常量池 1,变量+字符串= ...
- Spring Cloud 入门 之 Eureka 篇(一)
原文地址:Spring Cloud 入门 之 Eureka 篇(一) 博客地址:http://www.extlight.com 一.前言 Spring Cloud 是一系列框架的有序集合.它利用 Sp ...
- C#使用OpcNetApi.dll和OpcNetApi.Com.dll操作OPC
本人学习了一下.Net,恰好,51自学网,又要用这个.而网上很多VC6,VB6,VB .Net的但,很少C#的.现在研究一下,给出例子: 测试平台,是VS2008,KEPServer,OpcNetAp ...
- Spring MVC @ResponseBody和@RequestBody使用
@ResponseBody用法: 作用:该注解用于将Controller的方法返回的对象,根据HTTP Request Header的Accept的内容,通过适当的HttpMessageConvert ...
- php错误:Uncaught exception com_exception with message Failed to create COM object
本文为大家讲解的是php错误:Uncaught exception com_exception with message Failed to create COM object,感兴趣的同学参考下. ...
- Ruby中数组的遍历
转自:http://www.jianshu.com/p/8de9b60f9350 Ruby中有几个常用的遍历数组的方法,本人经常容易搞混.这里列出来总结一下. each: 从数组中取出一个元素,作为某 ...
- Oracle VM VirtualBox虚拟机安装Ubuntu Server
安装过程如下:原文转自:http://www.linuxidc.com/Linux/2012-04/59368p8.htm