我正在研究使用grpc替换WCF。我正在使用.Net 5,并寻找一个独立的服务器解决方案(不涉及ASP,只是控制台应用程序)。这已经大大限制了可用的提示和教程 :-(
使用包grpc.Core(2.34.0)、grpc.Tools(2.34.0)、grpc.Net.Common(2.34.0)和Google.Protobuf(3.14.0),很容易生成一个基本的服务器(GreeterImpl来自某些教程):
第二届装配
它甚至可以在现有的IIS上以5001端口为服务的情况下运行。
我该如何启动第二个服务器(不同的程序集),使用相同的端口但不同的目录? 我找不到任何关于如何实现这一点的建议。
使用包grpc.Core(2.34.0)、grpc.Tools(2.34.0)、grpc.Net.Common(2.34.0)和Google.Protobuf(3.14.0),很容易生成一个基本的服务器(GreeterImpl来自某些教程):
Server server = new Server();
server.Services.Add(Greeter.BindService(new GreeterImpl()));
server.Ports.Add(new ServerPort("localhost", 5001, ServerCredentials.Insecure));
server.Start();
Console.ReadKey();
这个很好用。服务器监听端口5001。
在WCF自托管(基于http.sys)中,通过指定不同的目录(压缩代码),轻松地托管多个WCF服务器:
第一个程序集
List<Uri> baseAddresses = new List<Uri>();
baseAddresses.Add(new Uri("http://localhost:5001/Service1.svc"));
host = new ServiceHost(typeof(GenericService), baseAddresses.ToArray());
host.Open();
第二届装配
List<Uri> baseAddresses = new List<Uri>();
baseAddresses.Add(new Uri("http://localhost:5001/Service2.svc"));
host = new ServiceHost(typeof(GenericService), baseAddresses.ToArray());
host.Open();
它甚至可以在现有的IIS上以5001端口为服务的情况下运行。
我该如何启动第二个服务器(不同的程序集),使用相同的端口但不同的目录? 我找不到任何关于如何实现这一点的建议。