我使用 AppHarbor 作为 CI 环境来验证我的提交。我在 AppHarbor 中遇到错误,因为 Redis 无法写入磁盘。
错误:
[RedisResponseException: MISCONF Redis 被配置为保存 RDB 快照,但目前无法持久保存在磁盘上。可能修改数据集的命令被禁用。有关错误的详细信息,请查看 Redis 日志。,sPort:58823,LastCommand:] ServiceStack.Redis.RedisNativeClient.CreateResponseError(字符串错误)+133 ServiceStack.Redis.RedisNativeClient.ExpectSuccess() +135 ServiceStack.Redis.RedisNativeClient.SendExpectSuccess(Byte[][] cmdWithBinaryArgs) +88 ServiceStack.Redis.RedisNativeClient.SetEx(String key, Int32 expireInSeconds, Byte[] value) +153 ServiceStack.Redis.RedisClient.SetEntry(String key, String value, TimeSpan expireIn) +62
我在 AppHarbor 上启用了磁盘写入,这就是我通过代码启动 Redis 的方式:
var startInfo = new ProcessStartInfo(redisPath, conf);
startInfo.WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory;
startInfo.WindowStyle = ProcessWindowStyle.Minimized;
startInfo.UseShellExecute = false;
var proc = Process.Start(startInfo);
在我的 redis.conf 中,我将 DB 目录作为 App_Data
dir ./App_Data
它在本地按预期工作(RDB 保存到 App_Data 中)。有人以前见过这个或知道解决方法吗?