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

在WCF中通过net.pipe运行多个服务

在WCF(Windows Communication Foundation)中,通过net.pipe运行多个服务需要注意以下几点:

  1. 绑定配置:在WCF的配置文件中,需要为每个服务配置一个终结点,并指定使用net.pipe协议。例如:
代码语言:xml<services>
复制
 <service name="MyService1">
   <endpoint address="net.pipe://localhost/MyService1" binding="netNamedPipeBinding" contract="IMyService1" />
  </service>
 <service name="MyService2">
   <endpoint address="net.pipe://localhost/MyService2" binding="netNamedPipeBinding" contract="IMyService2" />
  </service>
</services>
  1. 服务契约:为每个服务定义一个服务契约接口,该接口定义了服务的方法和数据类型。例如:
代码语言:csharp
复制
[ServiceContract]
public interface IMyService1
{
    [OperationContract]
    string GetData1(int value);
}

[ServiceContract]
public interface IMyService2
{
    [OperationContract]
    string GetData2(int value);
}
  1. 服务实现:为每个服务编写实现类,并实现相应的服务契约接口。例如:
代码语言:csharp
复制
public class MyService1 : IMyService1
{
    public string GetData1(int value)
    {
        return "Service1: " + value;
    }
}

public class MyService2 : IMyService2
{
    public string GetData2(int value)
    {
        return "Service2: " + value;
    }
}
  1. 服务承载:在主程序中,使用ServiceHost类承载每个服务。例如:
代码语言:csharp
复制
ServiceHost host1 = new ServiceHost(typeof(MyService1));
ServiceHost host2 = new ServiceHost(typeof(MyService2));

host1.Open();
host2.Open();

Console.WriteLine("Press ENTER to close the host");
Console.ReadLine();

host1.Close();
host2.Close();
  1. 客户端调用:在客户端程序中,使用ChannelFactory类创建代理对象,并调用服务方法。例如:
代码语言:csharp
复制
ChannelFactory<IMyService1> factory1 = new ChannelFactory<IMyService1>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/MyService1"));
IMyService1 proxy1 = factory1.CreateChannel();

ChannelFactory<IMyService2> factory2 = new ChannelFactory<IMyService2>(new NetNamedPipeBinding(), new EndpointAddress("net.pipe://localhost/MyService2"));
IMyService2 proxy2 = factory2.CreateChannel();

Console.WriteLine(proxy1.GetData1(100));
Console.WriteLine(proxy2.GetData2(200));

通过以上步骤,可以在WCF中通过net.pipe协议运行多个服务。在实际应用中,可以根据需要创建多个服务,并为每个服务配置不同的终结点地址和服务契约接口。

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

相关·内容

dotnet 教你写一个可以搞炸本机所有 WCF 应用的程序方法

用不着官方文档提供的十分繁琐的方式,咱直接明了,通过简单的控制台,利用WCF实现本机 IPC 进程间通讯 咱将先制作一个简单的 WCF 进程间通讯的服务端和客户端两个控制台项目,用来演示管道下的 WCF...类是服务运行的,而接口是给客户端使用的。...以上的错误提示和服务WCF 没有启动或者客户端配置的连接字符串和服务端配置的不相同的是一样的提示方式 原因其实比较复杂一点,简单说就是 WCF 的连接字符串,通过管道的方式的时候,不是直接作为管道名的...WCF 连接字符串为 net.pipe://localhost/ 接着使用管理员运行即可,如运行服务 这个问题其实是某个用户报告给我的,经过了 lsj 使用了各个黑科技的方式调试,加上堆栈网大佬们的回复...WCF 连接字符串: net.pipe://127.0.0.1/MyWCFConnection 捣乱程序 WCF 连接字符串: "net.pipe://localhost/" 捣乱程序使用管理员权限运行

47920
  • WCF技术剖析之二十: 服务WCF体系是如何被描述的?

    任何一个程序都需要运行于一个确定的进程,进程是一个容器,其中包含程序实例运行所需的资源。同理,一个WCF服务的监听与执行同样需要通过一个进程来承载。...我们将为WCF服务创建或指定一个进程的方式称为服务寄宿(Service Hosting)。服务寄宿的本质通过某种方式,创建或者指定一个进程用以监听服务的请求和执行服务操作,为服务提供一个运行环境。...本篇文章,我们将对服务描述进行全面的介绍。...WCF服务描述通过类型System.ServiceModel.Description.ServiceDescription表示,ServiceDescription对象是WCF服务运行时的描述。...在下面的服务定义通过ServiceBehaviorAttribute将Name和Namespace设置为“CalcService”和“http://www.artech.com/”,后面的XML体现了服务

    99560

    如何实现IIS 7.0对非HTTP协议的支持

    这个对于WCF服务寄宿来说意义重大,它意味着我们通过IIS/WAS寄宿的服务终结点不仅仅可以采用BasicHttpBinding、WSHttpBinding/WS2007HttpBinding等基于HTTP...为了将一个IIS的Web应用作为WCF服务的宿主,并采用非HTTP的通信协议,我们不但需要为Web应用所在的站点添加相应的站点绑定(net.tcp、net.pipe和net.msmq等),还需要为Web...三个新增的站点绑定被添加到了表示站点配置节的节点中,而表示我们创建的Web应用的节点的enabledProtocols属性包含了我们通过命令行设置的四种协议...如图7-11所示,如果我们IIS管理器中选择相应的站点,右边“编辑网站”一栏会出现一个“绑定…”按钮。点击该按钮会出现一个“网站绑定”的对话框,当前站点的所有绑定会在这个对话框列表。...为作为WCF服务宿主的Web应用和它所在的站点进行了如上的设置之后,我们就可以直接将基于HTTP的终结点绑定直接替换成基于其他协议类型的绑定。

    1.2K100

    使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.IIS托管WCF服务3.使用PHP调用托管IISWCF服务

    上一篇,使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS(并不是必须的,还是有其他的方式的 比如windows azure) 1.系统必备      首先,必须打开...2.IIS托管WCF服务      IIS默认网站添加应用程序emp,并在高级设置,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,http类型编辑IP地址和主机名...新建的虚拟目录对应的实际目录,添加web.config文件,配置wcf服务和终结点,并打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管IISWCF服务 PHP服务打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...出现以上页面,证明IIS托管正常,现在,可以使用php开发程序调用此服务啦。

    2.1K70

    菜菜从零学习WCF四(承载服务)

    我们都知道WCF运行的时候必须自己提供宿主来承载服务WCF 本身没有附带宿主,就需要我们自己来依附于宿主而承载WCF服务。 那么现在主要有几种方式来为我们提供WCF的承载呢?...1.IIS承载 2.Windows 进程激活服务(WAS)承载 3.托管应用程序承载(自承载) 第一种IIS承载   WCF可以方便的通过IIS承载。...此环境适合开发可通过WCF支持的任何网络协议(HTTP 、net.tcp、net.pipe和net.msmq)进行通信的WCF服务   --IIS承载的好处     -可像处理任何其他任何类型的IIS应用程序...-IIS提供进程激活、运行状况管理和回收功能以提高承载的应用程序的可靠性。     -像ASP.NET一样,ASP.NET承载的WCF服务可以利用ASP.NET共享宿主模型。...在次模型多个应用程序驻留在一个公共辅助进程以提高服务器密度和可伸缩性。

    95620

    docker通过X11运行gui程序

    它没有语言 支持、框架或者打包系统的限制,并可以运行在任何地方、任何时候,从小型的家用电脑到高端的服务器都可以运行。...这让人们可以打包不同的包用于部署和扩展网 络应用,数据库和后端服务而不必依赖于特定的栈或者提供商。...但是docker的应用环境不止限于web等不需要GUI的场景,如果我们需要经常测试新的框架,或者本地开发一个docker image,随后上传到服务器。...为了演示如何在docker运行GUI程序,我们以firefox为例。 以下所有代码的环境为ubuntu 16.04 amd64, 其他发行版可进行适当修改。...解决的办法很简单,允许所有用户访问X11服务即可。这个事情可以用xhost命令完成。

    10.6K30

    Apache服务器上同时运行多个Django程序的方法

    昨天刚刚找了一个基于Django的开源微型论坛框架Spirit,部署自己的小服务器上。...脚本之家搜索到了一篇名为Apache服务器上同时运行多个Django程序的方法,该文章声称可以apache的配置文件中使用SetEnv指令来部署多站点Django, 但是wsgi.py已经存在...,里面解释到 绝大多数情况下,如果需要在程序运行过程设置环境变量,使用os.environ.setdefault函数是没有任何问题的,但是有两种场景下setdefault会造成意外的问题,需要慎用:...,程序运行环境里已经存在环境变量ENV,导致如果此时用setdefault函数对该环境变量设置另一个不同的值(如VAL2),也会因为同样的原因导致无法设置为新值 因此,程序运行设置系统环境变量的最安全方法还是...我去掉了wsgi.py的os.environ语句,apache配置文件中使用SetEnv进行配置文件的选择,奇怪的是不论SetEnv后面有没有使用引号,该问题都无法解决,有时候报错为模块找不到(与背景的报错信息相同

    3.6K30

    那些年我们一起追过的缓存写法(四)

    常见的策略是每台机器发布应用时,节点从负载均衡节点集合移除,发布结束后,首次访问通过人工或自动请求下页面让其缓存,也包括预编译。...所以把应用进程缓存的数据抽离出来,放在单独进程,给应用提供一层缓存。缓存的业务逻辑、并发处理独立进程做,使用进程通信进行交互。这样不但解决了数据量大预热的麻烦,还能解耦部分应用的业务。...另外单独的进程也可以供外部使用,比如以WCF服务的方式提供给其他子系统使用。 缺点是跨进程读取的速度比进程内读取要稍慢。...Namedpipe Wcf原生namedpipe包装了一下,使用起来更为简单方便。...ChannelFactory(netTcpBindingBinding, new EndpointAddress("net.tcp://localhost:8057/CacheService/")); 总结 大型网站开发

    62860

    如何在一台服务服务方式运行多个EasyCVR程序?

    我们在此前的文章为大家介绍过如何在一台服务器中部署多个EasyCVR,具体配置过程,感兴趣的用户可以戳这篇文章:《流媒体集群应用与配置:如何在一台服务器部署多个EasyCVR?》...这篇文章主要介绍的是以进程的方式运行EasyCVR,今天我们来分享一下如何在一台服务,让多个EasyCVR以服务方式启动。...3)easycvr.ini配置文件添加以下字段,添加完成后保存关闭。...当在任务管理器—详细信息里能看到这些服务,则表示运行成功。EasyCVR平台近期正在进行新功能的扩展,包括服务器集群、视频轮巡、视频转码、电子地图与轨迹跟踪等等。...越来越多的用户也逐渐开始部署集群方案,集群作为一种高效的服务协作方式,可以实现负载均衡、分担服务器压力等功能,视频应用服务可发挥重要的作用。对集群感兴趣的用户可以翻阅我们往期的文章进行了解。

    84430

    默认终结点

    但是对于WCF来说,进行服务寄宿的时候,你必须以编程或者配置的方式为服务添加至少一个终结点,而终结点需要具备基本的ABC三要素。...所谓默认终结点,顾名思义,就是在你尚未为寄宿的服务添加任何终结点的时候,WCF会自动根据服务的基地址(Base Address)为你创建一个或者多个默认的终结点。...本例服务GreetingService实现了两个服务契约,寄宿过程又为它指定了两个基地址,所以最终被自动创建的默认终结点是四个。...实际上,基地址的协议类型和最终作为默认终结点的类型之间的匹配关系是通过配置决定的。配置节具有一个名为的子结点。...当ServiceHost开启的时候,WCF会检验其Description熟悉表示的服务描述是否具有至少一个终结点。

    77460

    windows 系统下 workerman 同一个运行窗口中开启多个 websocket 服务

    开启多个 ws 服务失败正常情况下,如果你想开启多个 websocket服务的话只要在一个文件,输入 new Worker 两次,监听不同端口,使用 Worker::runAll() 命令即可但是你会发现在在...windows 无法一个文件同时监听两个 websocket 服务,其他系统比如 Linux 是没有问题的会报 multi workers init in one php file are not...support 错误,意思 windows 禁止同一个文件开启多个 websocket 服务<?...Worker实例Worker::runAll(); 开启服务失败解决办法windows 版本的 workerman 不支持同一个文件实例化多个 Worker。...窗口也会更多,那么如何在同一个窗口中运行启动多个服务呢那么如果要解决这个问题,我们就可以创建一个 init.bat 文件,然后文件中加入以下代码,然后双击运行即可实现在同一个窗口中启动多个服务/d:

    1.5K103

    WCF技术剖析(卷1)》(修订版)目录

    构建整个解决方案 1.3.2 步骤二 创建服务契约 1.3.3 步骤三 创建服务 1.3.4 步骤四 通过自我寄宿的方式寄宿服务 1.3.5 步骤五 创建客户端调用服务 1.3.6 步骤六 通过IIS...Net.Pipe 2.1.4. Net.Msmq 2.2. EndpointAddress 2.4.1. 为服务端终结点指定地址 2.4.2. 客户端指定地址 2.4.3. 地址报头 2.3....端口共享WCF的意义何在? 2.3.2. 基于HTTP|HTTPS的端口共享 2.3.3. 基于TCP的端口共享 2.4. 逻辑地址与物理地址 2.4.1. 服务的角色 2.4.2....序列化WCF框架的实现 5.7.1. 消息格式化器 5.7.2. DataContractSerializer还是XmlSerializer? 5.7.3....WCF的四大行为 7.2. ServiceHost 7.2.1. 服务描述的创建(S701) 7.2.2. 运行时框架体系的构建 7.2.3. 服务的批量寄宿(S702) 7.2.4.

    1.1K80

    WCF系列教程之WCF服务宿主与WCF服务部署

    一、简介 任何一个程序的运行都需要依赖一个确定的进程,WCF也不例外。...如果我们需要使用WCF服务,那么我们就必须将服务寄宿与创建它并控制它的上下文和生存期的运行时环境当中,承载服务的环境,称之为宿主。WCF服务可以支持托管代码的任意Windows进程运行。...二、WCF宿主环境主要有以下几种 1、托管应用程序的自承载 WCF服务可以承载与任何托管应用程序,这是最灵活的选项,因为它需要部署的基础结构最少,托管应用程序代码内嵌入服务代码,然后创建并打开 ServiceHost...通过使服务从 ServiceBase 类以及从 WCF 服务协定接口继承,将该服务同时实现为 Windows 服务WCF 服务。...未激活消息的安全环境,由托管 Windows 服务宿主选项启用的方案是承载于 IIS 之外、长时间运行WCF 服务的方案。 服务的生存期改由操作系统控制。

    1.4K80

    windows的server服务_windowsserver是什么

    对于客户端来说,缓存集群的所有缓存服务器就是单一的逻辑存储。客户端既不知道也不关心的哪台物理服务器的缓存哪些数据。...AppFabric Hosting Services AppFabric Hosting Services,使用它能方便的运行和管理WCF服务,特别是由WF Service创建的服务。... WAS 托管服务时,将不会创建服务实例,直到接收到递送至该服务的消息。这表示最初服务启动时,必须通过分配内存、加载库以及创建对象等方式初始化新的实例。...net.pipe:提供了基于命名管道的激活。 net.msmq:使用基于 WCF 的消息队列 (MSMQ) 应用程序。...通过WPI进行安装,注意WPI的默认选项没有包含AppFabric: 通过下方选项进行设置,勾选上企业选项: 通过企业选项卡就可以看到了AppFabric的安装程序: 安装完成后,所有的程序和

    1.4K20
    领券