首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WCF:如何从ServiceHost获取端点列表?

WCF(Windows Communication Foundation)是一种用于构建面向服务的应用程序的框架,它使用ServiceHost来承载服务。要从ServiceHost获取端点列表,可以使用以下方法:

  1. 获取ServiceHost的Description属性,该属性包含ServiceHost的元数据和绑定信息。
  2. 通过Description属性的Endpoints属性获取端点列表。

以下是一个示例代码:

代码语言:csharp
复制
ServiceHost host = new ServiceHost(typeof(MyService));
ServiceDescription description = host.Description;

foreach (ServiceEndpoint endpoint in description.Endpoints)
{
    Console.WriteLine("Endpoint: " + endpoint.Name);
    Console.WriteLine("Address: " + endpoint.Address);
    Console.WriteLine("Binding: " + endpoint.Binding.Name);
    Console.WriteLine("Contract: " + endpoint.Contract.Name);
}

在这个示例中,我们首先创建一个ServiceHost实例,然后通过Description属性获取ServiceHost的元数据和绑定信息。接着,我们使用Endpoints属性获取端点列表,并遍历端点列表,输出每个端点的名称、地址、绑定和契约信息。

推荐的腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何列表获取元素

有两种方法可用于列表获取元素,这涉及到两个命令,分别是lindex和lassign。...lassign接收至少两个变量,第一个是列表变量,第二个是其他变量,也就是将列表中的元素分配给这些变量。例如: ? 可以看到此时lassign比lindex要快捷很多。...情形1:列表元素的个数比待分配变量个数多 例如,上例中只保留待分配变量x和y,可以看到lassign会返回一个值c,这个值其实就是列表中未分发的元素。而变量x和y的值与上例保持一致。 ?...综上所述,可以看到在使用lassign时要格外小心,确保变量个数与列表长度一致,或变量个数小于列表长度,否则会出现待分配变量最终被赋值为空字符串的情形。...思考一下: 如何用foreach语句实现对变量赋值,其中所需值来自于一个给定的列表

17.3K20

WCF后续之旅(16): 消息是如何分发到Endpoint的--消息筛选(Message Filter)

一、连接请求的监听 当我们通过ServiceHost对某个服务进行寄宿的时候,实际上WCF是在为我们创建一个监听器,并监听来自外界的服务访问请求。...对于服务访问请求的消息,会先被对应的ChannelDispacher(这取决于该消息是哪个ChannelListener接收到的)接收,ChannelDispacher本身并不会对该消息进行处理,而是为将它转发到对应的...也就是说当ChannelDispatcher进行筛选的时候,会遍历它所有的EndpointDispatcher,获取他们的AddressFilter和ContractFilter,调用Match方法,如果两者都返回...后续之旅: WCF后续之旅(1): WCF如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel WCF后续之旅(3):...:创建一个简单的SOAP Message拦截、转发工具[下篇] WCF后续之旅(14):TCP端口共享 WCF后续之旅(15): 逻辑地址和物理地址 WCF后续之旅(16): 消息是如何分发到Endpoint

82680
  • 标准终结点与无(.SVC)文件服务激活

    实际上,WCF确实为我们创建了这么一个标准的MexEndpoint终结点。包含MexEndpoint终结点在内,WCF总共为我们定义了如下面的列表所示的9个标准终结点。...在《通过自定义ServiceHost实现对WCF的扩展[实例篇]》中,我们介绍了如何通过自定义ServiceHost的方式实现WCF与Unity这个IoC框架进行集成。...="Artech.WcfExtensions.IoC.UnityServiceHostFactory, Artech.WcfExtensions"%> 消息交换的角度来说,客户端对IIS/WAS寄宿下服务的调用本质上体现在对...具体来说,就是获取用于创建ServiceHost的ServiceHostFactory的类型(如果没有通过指令的Factory进行显式设置,默认使用的ServiceHostFactory...如果WCF的服务端能够根据请求正确地创建出基于目标服务的ServiceHost,就能解决服务的激活问题。

    724110

    WCF后续之旅(3): WCF Service Mode Layer 的中枢—Dispatcher

    Step 13:反序列化输入参数列表 对整个WCF infrastructure,我们可以将其分成两个世界,其中一个是基于message的世界;而另一个则是object的世界。...所以我们需要一个这样的中介:将输入参数message中提出,并转化成object;同是将返回值object形式转化成message。这样的中介就是:MessageFormatter。...执行的结果会生成返回值或者输出参数列表。...具体的做法是:通过DispatchOperation的SerializeReply属性判断是否需要对返回值和输出参数进行序列化,如何需要,则通过Formatter属性获取具体的IDispatchMessageFormatter...Step 20:最后作一些资源的释放和清理工作 WCF后续之旅: WCF后续之旅(1): WCF如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——

    68790

    WCF后续之旅(14):TCP端口共享

    二、Net.TCP Port Sharing Service 功能上讲,Net.TCP Port Sharing Service实现了和HTTP.SYS相同的功能:请求的监听和分发(request listening...实际上,当ServiceHost的Open方法被执行的时候,WCF会将这两个地址,net.tcp://artech.com:8888/service1和net.tcp://artech.com:8888...而对于Net.TCP Port Sharing Service来说,在其内部维护者一个目的地址和进程的列表,在进行目的地址注册的时候,会将这两个地址和对应的服务寄宿地址的匹配关系添加到该列表之中。...当基于他们各自服务调用的socket连接请求抵达artech.com的时候,Net.TCP Port Sharing Service会截获请求消息,并获取目的地址。...根据该目的地址,结合内部维护的目的地址和目标进程匹配列表,Net.TCP Port Sharing Service得到对应的目标应用程序,并将请求消息向真正的目标程序进行转发。

    82410

    并发与实例上下文模式: WCF服务在不同实例上下文模式下具有怎样的并发表现

    通过《上篇》介绍,我们知道了如何通过编程和配置的方式设置相应的最大并发量,从而指导WCF的限流体系按照你设定的值对并发的服务调用请求进行限流控制。那么,在WCF框架体系内部,整个过程是如何实现的呢?...WCF根据ServiceHost实际采用的监听地址(不一定是终结点地址)创建相应的信道分发器,也就是说,ServiceHost包含的信道分发器的数量和监听地址的数量相同。...WCF会创建两个信道分发器,它们各自具有自己的信道监听器,上述的两个URI即为监听器对应的监听地址。此外,对应于ServiceHost的三个终结点,WCF会创建相应的终结点分发器。...接下来,我尽量用比较直白的描述简单地介绍一下WCF限流框架体系是如何将递交处理的请求控制在我们设置的范围的。无论是基于对并发会话的控制,还是对并发调用以及并发实例上下文的控制,都是采用相同的实现机制。...如果上面两个屏障顺利通过,WCF会通过实例上下文提供器(InstanceContext Provider)获取现有的或者创建新的实例上下文。

    1.4K70

    控制并发访问的三道屏障: WCF限流(Throttling)体系探秘

    通过《上篇》介绍,我们知道了如何通过编程和配置的方式设置相应的最大并发量,从而指导WCF的限流体系按照你设定的值对并发的服务调用请求进行限流控制。那么,在WCF框架体系内部,整个过程是如何实现的呢?...WCF根据ServiceHost实际采用的监听地址(不一定是终结点地址)创建相应的信道分发器,也就是说,ServiceHost包含的信道分发器的数量和监听地址的数量相同。...WCF会创建两个信道分发器,它们各自具有自己的信道监听器,上述的两个URI即为监听器对应的监听地址。此外,对应于ServiceHost的三个终结点,WCF会创建相应的终结点分发器。...接下来,我尽量用比较直白的描述简单地介绍一下WCF限流框架体系是如何将递交处理的请求控制在我们设置的范围的。无论是基于对并发会话的控制,还是对并发调用以及并发实例上下文的控制,都是采用相同的实现机制。...如果上面两个屏障顺利通过,WCF会通过实例上下文提供器(InstanceContext Provider)获取现有的或者创建新的实例上下文。

    83460

    ConcurrencyMode.Multiple模式下的WCF服务就一定是并发执行的吗:探讨同步上下文对并发的影响

    通过《上篇》介绍,我们知道了如何通过编程和配置的方式设置相应的最大并发量,从而指导WCF的限流体系按照你设定的值对并发的服务调用请求进行限流控制。那么,在WCF框架体系内部,整个过程是如何实现的呢?...WCF根据ServiceHost实际采用的监听地址(不一定是终结点地址)创建相应的信道分发器,也就是说,ServiceHost包含的信道分发器的数量和监听地址的数量相同。...WCF会创建两个信道分发器,它们各自具有自己的信道监听器,上述的两个URI即为监听器对应的监听地址。此外,对应于ServiceHost的三个终结点,WCF会创建相应的终结点分发器。...接下来,我尽量用比较直白的描述简单地介绍一下WCF限流框架体系是如何将递交处理的请求控制在我们设置的范围的。无论是基于对并发会话的控制,还是对并发调用以及并发实例上下文的控制,都是采用相同的实现机制。...如果上面两个屏障顺利通过,WCF会通过实例上下文提供器(InstanceContext Provider)获取现有的或者创建新的实例上下文。

    65290

    并发与实例上下文模式: WCF服务在不同实例上下文模式下具有怎样的并发表现

    通过《上篇》介绍,我们知道了如何通过编程和配置的方式设置相应的最大并发量,从而指导WCF的限流体系按照你设定的值对并发的服务调用请求进行限流控制。那么,在WCF框架体系内部,整个过程是如何实现的呢?...WCF根据ServiceHost实际采用的监听地址(不一定是终结点地址)创建相应的信道分发器,也就是说,ServiceHost包含的信道分发器的数量和监听地址的数量相同。...WCF会创建两个信道分发器,它们各自具有自己的信道监听器,上述的两个URI即为监听器对应的监听地址。此外,对应于ServiceHost的三个终结点,WCF会创建相应的终结点分发器。...接下来,我尽量用比较直白的描述简单地介绍一下WCF限流框架体系是如何将递交处理的请求控制在我们设置的范围的。无论是基于对并发会话的控制,还是对并发调用以及并发实例上下文的控制,都是采用相同的实现机制。...如果上面两个屏障顺利通过,WCF会通过实例上下文提供器(InstanceContext Provider)获取现有的或者创建新的实例上下文。

    1.4K70

    默认终结点

    很多WCF的初学者是之前的Web服务上转移过来的,他们非常怀念.asmx Web服务无配置的服务寄宿方式。...对于最新版本的WCF编程人员来说,你也可以采用无配置的服务寄宿了,这主要得益于WCF提供的默认终结点机制。...对于自动创建的终结点,其地址和服务契约分别来源于指定的基地址和服务实现的契约,那么采用的绑定又是如何确定的呢? 一、默认终结点的绑定是如何确定的?...接下来我们来具体介绍默认终结点机制是如何实现的,具体来讲就是表示默认终结点的ServiceEndpoint对象是如何被添加到用于表示寄宿服务描述的ServiceDescription的终结点列表(对应于...当ServiceHost在开启的时候,WCF会检验其Description熟悉表示的服务描述是否具有至少一个终结点。

    77560

    WCF后续之旅(15): 逻辑地址和物理地址

    换句话说,终结的逻辑地址是必须的,如何物理地址没有指定的,默认使用逻辑地址作为物理地址。...而对于如何确保监听地址的唯一性,WCF采用如下的策略: 如果采用TCP作为传输协议,在不采用端口共享的情况下,会选择一个未被使用的端口作为最终监听地址的端口一确保地址的唯一性 如果采用TCP作为传输协议...然后遍历ServiceHost的ChannelDispatcher列表,并将ChannelDispatcher对象的ChannelListener的Uri打印出来: 1: //---------...后续之旅: WCF后续之旅(1): WCF如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel WCF后续之旅(3):...:创建一个简单的SOAP Message拦截、转发工具[下篇] WCF后续之旅(14):TCP端口共享 WCF后续之旅(15): 逻辑地址和物理地址 WCF后续之旅(16): 消息是如何分发到Endpoint

    807110

    WCF后续之旅(10): 通过WCF Extension实现以对象池的方式创建Service Instance

    我们能够以池的机制(Pooling)进行对象的获取和创建呢:当service调用请求抵达service端,先试图池中获取一个没有被使用的service instance,如何找到,直接获取该对象;否则创建新的对象...如何顺利找到这样的service instance,则将其对象池取出,将IsBusy属性设为true;如何没有找到,则通过反射创建一个新的service instance,将IsBusy设为true,...instance.IsBusy = false; 69: } 70: } 71: } 72:  PooledInstanceLocator实现了3基于对象池的功能:对象池中获取对象...WCF后续之旅: WCF后续之旅(1): WCF如何通过Binding进行通信的 WCF后续之旅(2): 如何对Channel Layer进行扩展——创建自定义Channel WCF后续之旅(3)...:创建一个简单的SOAP Message拦截、转发工具[下篇] WCF后续之旅(14):TCP端口共享 WCF后续之旅(15): 逻辑地址和物理地址 WCF后续之旅(16): 消息是如何分发到Endpoint

    71690

    WCF后续之旅(13): 创建一个简单的WCF SOAP Message拦截、转发工具

    WCF是.NET平台下实现SOA的一种手段,SOA的一个重要的特征就基于Message的通信方式。Messaging的角度讲,WCF可以看成是对Message进行发送、传递、接收、基础的工具。...它将被置于WCF调用的client和service之间,拦截并转发client到service的request message,以及service到client的response message,并将...我们知道,虽然我们在进行WCF service调用的时候,我们的参数列表,无论是个数、数据类型和次序,都千差万别,我们的返回值类型也各有不同,但是WCF service的调用最终是基于Message的,...但是Operation是如何选择的呢?...这是应为Message在WCF有一个特殊的处理机制:只有Message的State为Created的时候,才能获取MessageBody的内容,否则会抛出异常。

    58530

    控制并发访问的三道屏障: WCF限流(Throttling)体系探秘

    WCF的流向限制(Throttling)为你设置了这些屏障,你可以根据现有的软硬件环境对该闸门准入的并发流量进行动态的配置。我们先来看看如何进行限流控制。...一、如何进行限流控制 WCF对限流的控制是通过一个服务行为(Service Behavior)实现的,该服务行为类型名称为ServiceThrottlingBehavior,定义在System.ServiceModel.Description...、通过编程的方式设置最大并发值 由于控制流量的ServiceThrottlingBehavior是一个服务行为,我们在进行服务寄宿(自我寄宿)的时候,直接通过编程的方式将该服务行为添加到服务描述的行为列表之中...在ServiceHost开启的状态下的什么限流设置均是无效的,至于具体的原因,可以参考《WCF技术剖析(卷1)》第7章关于服务描述和服务寄宿过程相关内容。...那么,在WCF框架体系内部,整个过程是如何实现的呢?请听下回分解。

    58180

    WCF服务端运行时架构体系详解

    WCF的服务端架构体系又可以成为服务寄宿端架构体系。我们知道,对于一个基于某种类型的服务进行寄宿只需要使用到一个唯一的对象,那就是ServiceHost。...目录: 一、服务描述(Service Description)谈起 二、服务端架构体系概览 三、终结点分发器选择机制 一、服务描述(Service Description...除了操作描述列表之外,自然还有基于服务契约本身的行为列表。...而该架构体系在ServiceHost开启的过程中被构建出来,这也是为什么在ServiceHost开启之后对服务描述所作的任何该表都是无效的根本原因。...当基于上面配置创建的ServiceHost在正常开启后,WCF会创建如下图所示的架构体系。

    680100
    领券