C# .net Grpc请求协议';HTTP/1.1';不支持

C# .net Grpc请求协议';HTTP/1.1';不支持,c#,.net,grpc,C#,.net,Grpc,我在net5中实现了一个简单的gRPC服务,类似于项目模板中的GreeterService 使用IIS LocalHost时,服务工作正常,但客户端在调用远程服务器时引发此异常: Grpc.Core.RpcException HResult=0x80131500消息=状态(StatusCode=“Internal”,Detail=“请求协议”HTTP/1.1”不受支持)。 我认为Grpc默认使用HTTP/2。我做错了什么?谢谢您的回复。读后 我意识到我需要将Grpc Web代理添加到我的应用程序

我在net5中实现了一个简单的gRPC服务,类似于项目模板中的GreeterService

使用IIS LocalHost时,服务工作正常,但客户端在调用远程服务器时引发此异常:

Grpc.Core.RpcException HResult=0x80131500消息=状态(StatusCode=“Internal”,Detail=“请求协议”HTTP/1.1”不受支持)。


我认为Grpc默认使用HTTP/2。我做错了什么?

谢谢您的回复。读后 我意识到我需要将Grpc Web代理添加到我的应用程序中,因为这会将HTTP/1.1客户端消息转换为HTTP/2

中介绍了添加到客户端和服务器的代码


在进行这些更改/添加后,我的gRPC消息服务工作正常。重要的是,我花了很多时间试图弄清楚如何在我的呼叫选项中引用证书,但是没有证书时,消息可以正常工作。

您是否有服务器2016或Windows 10?你有证书(TLS)吗?没有任何代码,人们只能猜测。是的,gRPC在HTTP/2上工作。因此,当只有HTTP/1.1可用时,它将无法工作。HTTP/2需要HTTPS,因此如果客户端(或服务器)不使用HTTPS,则无法使用GRPCBrowser无法使用gRPC,因此创建了规范。例如,这会影响SPA和Blazor WASM。