首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gRPC停止在Windows11上使用APO

gRPC停止在Windows11上使用APO
EN

Stack Overflow用户
提问于 2022-02-03 21:42:09
回答 1查看 246关注 0票数 1

我有一个由AudioDG.exe加载的Windows应用程序(APP)和音频处理对象(APO),它们通过gRPC进行通信:

netstat -ano).

  • I编写的
  1. 应用程序部件通过Grpc.Core创建服务器。
  2. APO部件通过grpc++创建客户端。
  3. server在127.0.0.1:20000上(我可以看到它已经启动,通过使用process检查,可以确认APO已加载到音频设备图中。)

所有的东西在Windows 8和10上都很有魅力,但是在11上它根本无法沟通--我要么是Error Code 14, Unavailable, failed to connect to all addresses,要么是4, Deadline Exceeded

启用调试跟踪之后,我现在看到“套接字为空”对“连接失败”错误的描述:I0207 16:20:59.916447 0 ..\..\..\src\core\ext\filters\client_channel\subchannel.cc:950: subchannel 000001D8B9B01E20 {address=ipv4:127.0.0.1:10000, args=grpc.client_channel_factory=0x1d8bb660460, grpc.default_authority=127.0.0.1:10000, grpc.internal.subchannel_pool=0x1d8b8c291b0, grpc.primary_user_agent=grpc-csharp/2.43.0 (.NET Framework 4.8.4470.0; CLR 4.0.30319.42000; net45; x64), grpc.resource_quota=0x1d8b8c28d90, grpc.server_uri=dns:///127.0.0.1:10000}: connect failed: {"created":"@1644240059.916000000","description":"socket is null","file":"..\..\..\src\core\lib\iomgr\tcp_client_windows.cc","file_line":112}

到目前为止我尝试过的是:

最新的grpc versions.

  • Using variables.

  • Using“无代理”、"Http2UnencryptedSupport“和其他env variables.

  • Using "localhost”或"0.0.0.0“的
  1. 更新了这两部分,以代替"127.0.0.1".
  2. Updating连接使用自签名的SSL证书(根CA、服务器证书+密钥、客户端证书+密钥)。
  3. 为我的端口添加入站/出站规则,然后禁用APO端的防火墙completely.
  4. Creating服务器,并试图在APP中与客户端连接。

如果我在C#部件中同时创建客户端和服务器,一切都会正常工作(包括不安全和SSL ),但一旦应用程序APO通信,它就会感到阻塞或沙箱化。

在Windows 11中,哪些更改可以“阻止”gRPC?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2022-02-10 23:03:48

在您的输入中,您写道:

服务器为127.0.0.1:20000

进一步查看日志,您可以看到:

服务器位于grpc.server_uri=dns:/127.0.0.1:10000

根据提出的问题和提供的数据量,我将检查服务器实际使用的端口以及客户端正在寻找连接的端口。

最简单的方法是使用内置的资源监视器应用程序。在“网络”选项卡上的“TCP连接”列表中,可以找到应用程序及其使用的端口。

您还可以使用PowerShell命令

代码语言:javascript
复制
Test-NetConnection -Port 10000 -InformationLevel "Detailed"
Test-NetConnection -Port 20000 -InformationLevel "Detailed"

至少这是我根据你描述的第一件事。

关于您关于Windows 11中的更改的问题,我不认为这会给您带来问题。但是,与Windows 10相比,Windows 11具有更多的安全功能,请尝试完全禁用安全性功能作为测试。也许这将有助于解决问题。

至于ASP.NET Core6.0本身(如果我正确理解了版本),那么服务器部分不工作在编程环境的沙箱中,仍然可能不接受客户端证书。在程序级别,您可以尝试通过在代码中添加以下异常来修复这个问题:

代码语言:javascript
复制
// This switch must be set before creating the GrpcChannel/HttpClient.
AppContext.SetSwitch(
    "System.Net.Http.SocketsHttpHandler.Http2UnencryptedSupport", true);

// The port number(5000) must match the port of the gRPC server.
var channel = GrpcChannel.ForAddress("http://localhost:5000");
var client = new Greet.GreeterClient(channel);

Microsoft在这里详细介绍了ASP.NET Core6.0中的更多疑难解答问题。https://learn.microsoft.com/en-us/aspnet/core/grpc/troubleshoot?view=aspnetcore-6.0

我希望这是有用的,我建议的解决方案中至少有一个将有助于解决你的问题。无论如何,如果我有更多的信息,我想我可以帮助你更准确。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70978691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档