惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
罗磊的独立博客
小众软件
小众软件
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
博客园_首页
N
Netflix TechBlog - Medium
B
Blog
Recent Announcements
Recent Announcements
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
L
LangChain Blog
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
Last Week in AI
Last Week in AI
Jina AI
Jina AI
V
V2EX
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 叶小钗
博客园 - 【当耐特】

博客园 - 蝈蝈

LAMPR Ver 1.0 发布 - 轻松搞定LAMP环境 在Windows Server下集成Apache、Tomcat和IIS Windows Workflow 学习笔记二 序语言流行度最新排行榜,C和C++正在衰落 Windows Workflow学习笔记 EAI,ESB与SOA How to Building ASP.NET AJAX Controls 使用页面Gzip压缩提速 Microsoft AJAX Library 简介 Configuration Section Designer示例 开源的内容管理系统 Windows Live Writer截屏插件 试用Windows Live Writer写博客 wcf step by step:服务的状态 wcf step by step:消息交换模式 wcf step by step:如何保护你的wcf服务 wcf step by step之异常处理 wcf step by step:改进HelloWorld程序 wcf step by step之HelloWorld
wcf step by step:host服务与多次Endpoint
蝈蝈 · 2008-02-28 · via 博客园 - 蝈蝈

    WCF的服务需要一个宿主程序来承载。我们可以选择用Windows Activation Service(WAS,for vista),IIS,WPF,Windows Form,Console或Windows Service程序来当作wcf的宿主程序。
  在上一篇中我们没有提到宿主程序的概念但也能运行,其实是宿主在IIS上,还记得我们需要在IIS配置虚拟目录么。
现在我们用其它的方式来宿主,并实现一个服务绑定多个Endpoint。
一种方式是wpf程序,通过配置文件绑定Endpoint,另一种方式以编程方式绑定Endpoint的windows service程序。以编程的方式绑定是出于演示目的,实际的应用场景中都会以配置文件的方式提供绑定,因为这样具有更多的灵活性。
需要注意的是我们不需要为service指定behaviorConfiguration属性了。但需要显式指定endpoint的address。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="HelloWorldWCF.EmployeeService">
        <endpoint address="http://localhost:8000/HelloWorldWCFdemo/EmployeeService.svc"
          binding="basicHttpBinding" name="EmployeeServiceHttpEndpoint"
          contract="HelloWorldWCF.IEmployeeService" />
        <endpoint address="net.tcp://localhost:8080/tcpEndpoint" binding="netTcpBinding"
          bindingConfiguration="" name="EmployeeServiceTcpEndpoint" contract="HelloWorldWCF.IEmployeeService" />
      </service>
    </services>
  </system.serviceModel>
</configuration>
客户端仍然是通过svcUtil工具生成的代理文件来完成与服务器的通讯的。因为这种方式比较简单,实际的企业应用中这样做太麻烦,每次服务接口有修改客户端需要update一次service reference才可以使用。后面我们会用一种更友好的方式来实现,服务器端和客户端共享数据和接口。客户端与上次没有太大变化,需要注意的是配置文件和New一个服务的客户端代理对像时我们传入一个endpoint的名给它,因为我们配置了多个endpoint,我们需要告诉它当前用哪一个。
下面是运行的效果图,请注意我们让HelloWorldWCFClient启动了多个实例,并都处于调试状态。通过输入不同而使用不同的协议与同一个服务器端通讯。因为我们的服务绑定了多个endpoint

下载源码:

https://files.cnblogs.com/shore/chapter%202.zip