相关疑难解决方法(0)

使用多个合同运行WCF ServiceHost

使用单个合同运行ServiceHost工作正常,如下所示:

servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.Open();
Run Code Online (Sandbox Code Playgroud)

现在我想添加第二个(第3个,第4个......)合同.我的第一个猜测就是添加更多端点,如下所示:

servicehost = new ServiceHost(typeof(MyService1));
servicehost.AddServiceEndpoint(typeof(IMyService1), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService1");
servicehost.AddServiceEndpoint(typeof(IMyService2), new NetTcpBinding(), "net.tcp://127.0.0.1:800/MyApp/MyService2");
servicehost.Open();
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用,因为在ServiceHost的创建中我可以将MyService1作为参数或MyService2传递 - 所以我可以为我的服务添加很多端点,但所有必须使用相同的合同,因为我只能提供一个实现?
我觉得我在这里错过了重点.当然必须有一些方法来为我添加的每个端点合同提供实现吗?

wcf self-hosting

51
推荐指数
5
解决办法
5万
查看次数

每个WCF服务的新ServiceHost?

首先,我运行一个应该包含很多功能的Windows服务.将有一个业务层,从这个业务层传来的结果将通过WCF发送到表示层.

我不知道如何构建所有这些功能.

所以我的问题是:

1.我应该创建一些Facade模式类来覆盖所有服务类,并将这个Facade类放到一个ServiceHost中.或者只为每个服务类创建一个ServiceHost实例?像这样

host1 = new ServiceHost(typeof(MyService1));
host2 = new ServiceHost(typeof(MyService2));
Run Code Online (Sandbox Code Playgroud)

2.粒度应该是我的服务类?每个enitity或每个聚合根或每个功能块?

此通信将通过net.pipe运行.

.net c# windows service wcf

3
推荐指数
1
解决办法
5298
查看次数

标签 统计

wcf ×2

.net ×1

c# ×1

self-hosting ×1

service ×1

windows ×1