问题标签 [grpc-dotnet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何使用 Automapper 将 proto 文件重复类型的属性映射到 C# 类的列表属性?
我有一个包含以下详细信息的原型文件:
TestGRPC.proto:
这用于具有以下结构的 DTO 类的 asp.net core 3.1 gRPC 客户端项目:
任何人都可以通过提供解决此问题的指导来帮助我。
asp.net-core - 如何在 gRPC proto 文件中支持 C# 动态类型
我们的 asp.net 核心应用程序中有一个接受dynamic
对象的 POST 操作。
我们希望将此 POST 操作转换为 gRPC 服务器,并且希望继续dynamic
在 gRPC 服务中接收对象。dynamic
gRPC protobuf 文件定义中的 C# 定义等价物是什么?或者,如果这无法实现,那么接收动态对象的最佳方式是什么?
go - 从 golang 客户端调用 dotnet grpc 服务时出错
夏普:
去代码:
调用它时,我从客户端代码中得到错误:
在服务器端获取:
c# - 返回 Grpc 验证错误的更好方法是什么
我想知道 grpc 服务中是否存在字段验证模式。
我知道 RpcException 具有元数据预告片属性,并且我可以添加有关我的错误的其他信息。
我的问题是:有一个要遵循的模式吗?如果不是,下面哪个例子会更符合预期。
示例 1:
示例 2:
我想接受此响应并在需要时使用 RFC 7807 规范将其转换为 json
c# - Microsoft.VisualStudio.Web.Host.exe 在 Visual Studio 中锁定 grpc_csharp_ext.x86.dll
我看到 Visual Studio 进程Microsoft.VisualStudio.Web.Host.exe
为 gRPC 锁定本机 dll 的问题grpc_csharp_ext.x86.dll
。
我们有一个在 IIS 中运行的 .net Framework 4.6.1 Web 应用程序,在 Windows 机器(Windows10 和服务器)上。它使用 gRPC 并与它捆绑以下 dll
据我所知,gRPC库在这里为它的架构加载了正确的dll https://github.com/grpc/grpc/blob/2780136fcf9bd268aaddea74b115fbc2faa97c61/src/csharp/Grpc.Core/Internal/NativeExtension.cs#L83和从不尝试释放它。我相信这没关系,因为一旦运行过程停止,所有东西都应该被释放。
但是,如果您在 IIS 中运行应用程序并从 Visual Studio 附加调试器,然后尝试重新构建应用程序,Visual Studio 将要求您停止调试,执行构建并遇到此问题,主要表现为:
我在 IIS 锁定相同的 dll 时遇到了类似的问题,并且我知道针对 gRPC https://github.com/grpc/grpc/issues/21867提出的这个问题导致Grpc_SkipNativeLibsCopy
被创建。此问题已通过添加预构建应用程序池回收得到缓解。
然而,似乎没有任何方法可以解决这个问题,唯一的做法似乎是终止Microsoft.VisualStudio.Web.Host.exe
进程。
任何人都可以帮助我们进一步了解如何阻止这种情况发生,或者找到一种更好的方法来缓解这个问题吗?
c# - grpc-dotnet 身份验证 jwt 不记名令牌
我正在寻找一些反馈或指导。我在 dotnet core 3.1 中构建了一个 grpc 服务器和客户端。只有这个客户端会与服务器对话,但仍然需要保护服务器端点。我正在尝试对其实施身份验证安全性,而 jwt 不记名令牌似乎是一条好路。我正在尝试遵循此处的示例(来自此MS Doc),这似乎是一个非常简单的实现,但是对于生产使用来说似乎不安全,因为任何人都可以点击生成令牌端点。我认为它可以修改和实现在获取令牌请求中传递的共享密钥。这似乎是一个好方法或其他想法?
除了这部分,我还有一个关于客户端代码的问题,我不太明白。在客户端启动时,它通过调用 CreateAuthenticatedChannel() 建立一个 grpc 通道,如果设置了 _token,它似乎只添加承载令牌。在客户端启动并点击第三个之前,您不会获得令牌,但我看不到通道或客户端在哪里重建以包含元数据令牌值。该示例似乎有效但不理解它。
}
.net - 为什么服务器上收到的 gRPC 截止日期与客户端发送的截止日期不同
我正在使用 gRPC csharp 实现来让两个服务相互通信。
从客户打来电话时,我正在设置截止日期。在服务器上接到电话时,我正在阅读截止日期。令我惊讶的是,截止日期值不一样,相差几分之一秒。
gRPC 文档说 Deadline 是一个固定的时间点。所以我希望在服务器上收到相同的值,但事实并非如此。
我可以看到它提到了100ns的舍入,但在我的情况下它更多。
可以考虑飞行时间吗?我找不到这样的逻辑,这将违反固定时间点的概念。
gRPC 源代码中的gRPC internalTimespec
和 c#之间的转换是否存在错误?DateTime
示例(伪)代码:
控制台输出为:
2020-09-22T14:14:20.8359860Z
为客户
2020-09-22T14:14:21.2910442Z
用于服务器
asp.net-core - 如何在 gRPC .NET Core 的证书存储中指定证书?
我正在尝试在 gRPC .NET Core 3.1 的证书存储中指定一个证书。
我找到了一种通过设置路径来指定证书的方法。
https://medium.com/@mcilis/how-to-publish-net-core-grpc-server-as-a-windows-service-dd562a1e263d
但是是否可以使用 appsettings.json 在 Windows 证书存储中指定一个?还是只能通过代码实现?
c# - gRPC 服务器 .net 框架 - 如何配置为使用 TLS 证书
我是 gRPC 的新手,只是在探索我的 .net 框架服务器中的通信选项。
由于服务器项目的年龄和规模,可能需要一段时间才能将它们移植到 .net 5+,但我想允许更新的 .net 5+ 客户端连接,所以想替换现有的服务器 WCF与当前的东西。
我的 WCF 总是使用 Windows 身份验证进行加密,由于跨域问题,我迫不及待地想要摆脱它,所以想使用 TLS。
我发现很难找到有关如何执行此操作的示例,尤其是在 .net 框架中,因为大多数示例都是 .net 核心。
这是一些典型的(ish)示例代码:
忽略AddCodeFirst
这些是其他一些实验,但是每个示例似乎都使用ServerCredentials.Insecure
,并且他们都说不要在生产中使用它(我不想这样做),但令人沮丧的是,他们没有展示如何使用 TLS 证书。我怎样才能做到这一点?
此外,对于 .net 框架客户端,典型代码是
唯一的选择似乎是Insecure
最后,对于服务器,是否可以使用自签名证书?
.net-core - 如何在 .net api 网关中使用 gRPC 服务?
我想将 gRPC 服务与 api 网关一起使用。如何将它用于 .netcore 中的 gRPC?可以使用 Ocelot 完成吗?