コミットを検証する CI 環境として AppHarbor を使用しています。Redis がディスクに書き込めないため、AppHarbor でエラーが発生します。
エラー:
[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(文字列キー、Int32 expireInSeconds、Byte[]値) +153 ServiceStack.Redis.RedisClient.SetEntry(文字列キー、文字列値、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 に保存されます)。誰もこれを前に見たり、回避策を知っていますか?