grpc-dotnet | open source , high-performance remote procedure call
kandi X-RAY | grpc-dotnet Summary
kandi X-RAY | grpc-dotnet Summary
gRPC is a modern, open source, high-performance remote procedure call (RPC) framework that can run anywhere. gRPC enables client and server applications to communicate transparently, and simplifies the building of connected systems.
Support
Quality
Security
License
Reuse
Top functions reviewed by kandi - BETA
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of grpc-dotnet
grpc-dotnet Key Features
grpc-dotnet Examples and Code Snippets
Community Discussions
Trending Discussions on grpc-dotnet
QUESTION
I have a Problem with my grpc connections and nginx.
So, i've got these things : a client, a server, nginx. They all run on the same machine.
The client does some network scanning and is supposed to send it's results to the server,
The server is supposed to take the scanning-results and put them into a database. The server is based on ASP.Net - See appsettings.json The client and server use "grpc-dotnet" with "protobuf". Both also use the SSL certificate and generally they both work as expected.
The nginx proxy is supposed to be used as a Reverse-Proxy -> Clients only need to know one Endpoint for all their Requests. Nginx is only configured to pass grpc requests, nothing else.
First of all, almost all grpc requests do work. But they stop working, if the request gets too big. I dont know the exact size, but it must be under 180kb.
(180kb is the size of the scan results.In a test, sending half of these results succeded, where sending all did not. Custom test data (with the same class of course) did show the same results. If they got too big, it stopped working)
Without nginx, there are no errors while sending data from client to server. With nginx however, the client does recieve a HTTP 504 error.
Content of error.log (nginx)
2021/07/27 13:27:28 [error] 21464#7952: *66 upstream timed out (10060: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat) while sending request to upstream, client: 127.0.0.1, server: , request: "POST /UI.Remoting.Discovery.Contract.DiscoveryService/SaveDiscoveryResult HTTP/2.0", upstream: "grpcs://127.0.0.1:30053", host: "localhost:30051"
"Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht richtig reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat" translates to :
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
nginx.conf - i did try many configurations - they do not solve my problems. The configurations shown below are just to show you, which ones i've tested, but there might be missing some. I've tested them in multiple different arrangements and selectively tested out each configuration in different areas (server, http, location)
...ANSWER
Answered 2021-Aug-12 at 10:50It seems like there actually is a bug in the current nginx versions. I've posted a new ticket in nginx's ticket system. https://trac.nginx.org/nginx/ticket/2229
QUESTION
I'm trying to get a GRPC server (written in .NET core) and client (written in C++) to communicate over a SSL/TLS-secured channel.
The server targets "netcoreapp3.1", and depends on "Grpc.AspNetCore" version 2.28.0. The server code itself is basically copied from the official grpc repo's examples. The Startup.cs
and Program.cs
are not too interesting on their own & probably aren't the problems, so I just uploaded them to a gist (do note the call to UseHttps
though). Everything builds, and a toy .NET core GRPC client (sources for that here) connects over HTTPS just fine
Unfortunately, I need to be using a C++ client to make the connection. Theoretically, the process is simple: get the .pfx file corresponding to the certificate passed to the UseHttps
call, use it to create a server.crt
via openssl, and use that to create a secure channel for the C++ client like so:
ANSWER
Answered 2021-Mar-12 at 00:25I later submitted another question with more details, and with an "answer." You can check that out here
QUESTION
I am currently trying to get an example for gRPC working. I am using a C# Asp.NET Core WebApi as the server and I try to connect to it via a Python client.
RessourcesMy proto file:
...ANSWER
Answered 2021-Feb-11 at 18:12Please see https://github.com/grpc/grpc/blob/master/doc/naming.md
the use of "https" is not correct
QUESTION
I am working with grpc-dotnet in 3.1 for a project. On the server side, the grpc call will be executing a local system process (such as binaries or scripts). The issue I am having is the streaming of the redirected output from the process back over the grpc client. All I am getting right now is the first line of output. Here is my testing code.
...ANSWER
Answered 2020-Jun-08 at 16:34This might be because you're writing to the ResponseStream
from an event handler, which is not necessarily being called on the right async context for the stream.
Take a look at CliWrap which wraps the whole process execution thing in a very nice API, including a ListenAsync
method which returns an IAsyncEnumerable
that you can await foreach
over and write the output to the stream.
Borrowing from the README, it would look something like this:
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install grpc-dotnet
Support
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page