c# - 为什么通过经典方式在 C# 中以编程方式 ping Redis Sercer 不起作用?
问题描述
所以我在本地安装了Redis。如果我从 cmd 运行命令:
redis-cli ping
我得到响应“PONG”——假设我已经打开(双击 redis-server.exe)服务器。
到目前为止,一切都很好。让我们摆脱这种手动工作,让我们在 C# 中以编程方式完成它。
让我们尝试经典的方式:
System.Diagnostics.Process process = new System.Diagnostics.Process();
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.StartInfo.WorkingDirectory = @"C:\Program Files\Redis";
process.StartInfo.FileName = "C:\\Windows\\System32\\cmd.exe"; //doh
process.StartInfo.Arguments = "redis-cli ping";
process.Start();
var result = process.StandardOutput.ReadToEnd(); //HERE it gets blocked. Id does not go through
process.WaitForExit();
所以我无法得到结果。
但如果我试试这个
ConnectionMultiplexer redis = ConnectionMultiplexer.Connect("localhost");
它就像一个魅力。
问题:传统方法有什么问题?我只是非常好奇。
解决方案
推荐阅读
- doxygen - DoxyWizard 外观:如何让一切变得更大
- html - 字形图标未显示,但同事的代码相同
- angular6 - 如何在 Angular 6 中使用 exceljs
- typescript - 使用 Axios 的带有凭据的 HTTP CORS 请求失败
- python - Python:如果数据框中的多列具有除一个特定字符串之外的任何值,则设置新列值
- php - PHP/Server 缓存 csv 文件
- kubernetes - Kubernetes入口规则:如何一起使用通配符和特定子域
- c++ - 无法将字符数组转换为带有 utf-8 字符的 wstring
- asp.net - Kendo UI 块上传到 Microsoft Azure
- javascript - 如何修改小游戏?