3

コミットを検証する 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 に保存されます)。誰もこれを前に見たり、回避策を知っていますか?

4

0 に答える 0