Кажется, все, что я видел в gRPC, находится в Dotnet Core.
К сожалению, я вынужден использовать .NET Framework, поскольку работаю над устаревшим приложением.
Я хотел бы добавить к нему несколько конечных точек gRPC.
Можно ли это сделать каким-либо разумным способом?
Совет @MakePeaceGreatAgain: если вы удалите часть /de-de/ этого URL-адреса: для большинства людей это будет работать естественно на их естественном языке.
@MarcGravell упс, вот нелокализованная ссылка: Learn.microsoft.com/aspnet/core/grpc/…
@MakePeaceGreatAgain - речь идет о клиенте, на самом деле клиентом будет net 8, это сервер, который мне нужен в Framework





Пакет Grpc.Core содержит (устаревший) неуправляемый код клиента и сервера и может использоваться в .NET Framework; типичное использование будет:
Server server = new Server
{
Ports = { new ServerPort("localhost", 10042, ServerCredentials.Insecure) },
Services = {
Calculator.BindService(calc),
TimeService.BindService(clock),
}
};
server.Start();
Console.WriteLine("Server running... press any key");
Console.ReadKey();
await server.ShutdownAsync();
Клиент будет больше похож на:
var channel = new Channel("localhost", 10042, ChannelCredentials.Insecure);
try
{
var calc = new Calculator.CalculatorClient(channel);
for (int i = 0; i < 5; i++)
{
using var ma = calc.MultiplyAsync(new MultiplyRequest { X = i, Y = i });
var calcResult = await ma.ResponseAsync;
Console.WriteLine(calcResult.Result);
}
var clock = new TimeService.TimeServiceClient(channel);
using var subResult = clock.Subscribe(new Empty());
var reader = subResult.ResponseStream;
while (await reader.MoveNext(default))
{
var time = reader.Current.Time;
Console.WriteLine($"The time is now {time}");
}
}
finally
{
await channel.ShutdownAsync();
}
Так да.
Можно ли это хорошо интегрировать в OWIN или ASP WebAPI?
@ScottishTapWater нет; он построен на основе CHTTP2 — полностью отдельного и неуправляемого уровня ввода-вывода.
Примеры устаревшей реализации C#, работающей с .NET Framework, можно найти здесь.
Как сказал @Marc Gravell , вам нужно использовать пакет Grpc.Core.
См. Learn.microsoft.com/de-de/aspnet/core/grpc/…