首页
学习
活动
专区
工具
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/" 捣乱程序使用管理员权限运行

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

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

    1K60

    如何实现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调用托管在IIS中的WCF服务

    上一篇中,使用控制台托管了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调用托管在IIS中的WCF服务 在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共享宿主模型。...在次模型中,多个应用程序驻留在一个公共辅助进程中以提高服务器密度和可伸缩性。

    97520

    在docker中通过X11运行gui程序

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

    10.9K30

    在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/")); 总结 在大型网站开发中

    63260

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

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

    85330

    默认终结点

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

    77860

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

    开启多个 ws 服务失败正常情况下,如果你想开启多个 websocket服务的话只要在一个文件中,输入 new Worker 两次,监听不同端口,使用 Worker::runAll() 命令即可但是你会发现在在...windows 中无法在一个文件中同时监听两个 websocket 服务,其他系统比如 Linux 是没有问题的会报 multi workers init in one php file are not...support 错误,意思 windows 中禁止在同一个文件中开启多个 websocket 服务服务失败解决办法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
    领券