没有 ASP.Net 的 grpc-dotnet 服务器

Posted

技术标签:

【中文标题】没有 ASP.Net 的 grpc-dotnet 服务器【英文标题】:grpc-dotnet Server without ASP.Net 【发布时间】:2021-08-21 10:01:39 【问题描述】:

我目前正在尝试将我的项目(.Net Core)从“Grpc.Core”移植到“grpc-dotnet”,因为 Grpc.Core 现在处于维护模式,将在大约一年后被弃用。

项目包含多项服务。客户端和服务器。

移植客户端部分没有问题,但是我如何使用 grpc-dotnet 没有 Asp.Net 创建服务器?

当前的实现如下所示

using Grpc.Core;
using ProtoBuf.Grpc.Server;

...

private Grpc.Core.Server CreateServer()

    Server server = new Server
    
        Ports = new ServerPort(_Configuration.Host, _Configuration.Port, ServerCredentials.Insecure)
    ;
    
    return server;

服务器提供的服务在 ProtoBuf.Grpc.Server 中注册 Code-First。

是否支持或将支持 Asp.Net 之外的服务器?

【问题讨论】:

【参考方案1】:

我非常希望不是这样,但恐怕答案是你不能。这个问题经常被问到(https://github.com/grpc/grpc-dotnet/issues/1368,https://github.com/grpc/grpc-dotnet/issues/1419)。

From James Newton-King:

不,grpc-dotnet 中不支持 .NET Framework 服务器。新的服务器实现基于 ASP.NET Core,需要仅在 .NET Core 3 或更高版本中提供的 HTTP/2 支持。

【讨论】:

以上是关于没有 ASP.Net 的 grpc-dotnet 服务器的主要内容,如果未能解决你的问题,请参考以下文章

gRPC在C#中的未来属于grpc-dotnet

C# & nginx - 上游超时

asp.net网站报错Temporary ASP.NET没有读写权限怎么办?

没有 ASP.NET/IIS 的 .NET Web 服务?

没有 ASP.NET 身份的 .NET Core 外部身份验证

有没有办法让 Asp.net 零公共站点(Asp.net MVC)中的实时登录用户?