In C# status server handlers (and also in interceptors on the serverside), you can set the resulting status without throwing an exception by setting ServerCallContext's "Status" property. https://github.com/grpc/grpc/blob/1c73e2c53ddecf3bd45f1c28d23a895fc7cd6e12/src/csharp/Grpc.Core/ServerCallContext.cs#L155
call.Status = new Status(StatusCode.WhateverYouWant, ""); // and then return from the server side handler. A test that demonstrates this is here: https://github.com/grpc/grpc/blob/1c73e2c53ddecf3bd45f1c28d23a895fc7cd6e12/src/csharp/Grpc.Core.Tests/ClientServerTest.cs#L129 On Tuesday, April 3, 2018 at 11:25:18 AM UTC+2, Joseph Vaughan wrote: > > I have a few instances where I'd like my gRPC server to reject an RPC call > using the newly introduced Interceptors functionality. I've read the > documentation and can see that this is a desired piece of functionality > (Cancelling > RPCs <https://grpc.io/docs/guides/concepts.html#cancelling-rpcs>). I can > see the functionality is available within the Java API (ServerCall.java > <https://github.com/grpc/grpc-java/blob/master/core/src/main/java/io/grpc/ServerCall.java#L155>) > > which looks perfect for what I'd like to do (Cancel the RPC and return one > of the internal gRPC status codes). The best solution I can find right now > for a C# server is to raise an RpcException with a Status, however I'd like > to avoid the use of exceptions for common control flow where possible. > > Ideally I'm looking for the same functionality as demonstrated here: > https://github.com/grpc/grpc-java/issues/779#issuecomment-130365950 > > Am I missing something on the C# side where I can already do this, and if > not, are there plans to introduce a similar API? > > Thanks, > Joseph. > > -- You received this message because you are subscribed to the Google Groups "grpc.io" group. To unsubscribe from this group and stop receiving emails from it, send an email to grpc-io+unsubscr...@googlegroups.com. To post to this group, send email to grpc-io@googlegroups.com. Visit this group at https://groups.google.com/group/grpc-io. To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/da50f4c1-e5ec-4087-b61d-adbf23829314%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.