2012-04-27 4 views
1

私はappharborにRedisを設定しようとしています。私は彼らの指示に従っており、再びBooksleeve APIに問題があります。AppharborのRedis - Booksleeve GetString例外

   var connectionUri = new Uri(url); 

       using (var redis = new RedisConnection(connectionUri.Host, connectionUri.Port, password: connectionUri.UserInfo.Split(new[] { ':' }, 2)[1])) 
       { 
        redis.Strings.Set(1, "greeting", "welcome to remember your stuff!"); 

        try 
        { 
         var task = redis.Strings.GetString(1, "greeting"); 

         redis.Wait(task); 

         ViewBag.Message = task.Result; 
        } 
        catch (Exception) 
        { 
         // It throws an exception trying to wait for the task? 
        } 
       } 

しかし、問題は、それが正しく文字列を設定していることですが、キーと値のストアから同じ文字列を取得しようとしたとき、それはタイムアウトがスローされます。ここで私はそれが最初に動作させるために使用していたコードですタスクがeexecuteを待っている例外。ただし、このコードはローカルのRedisサーバー接続で機能します。

私は間違った方法でAPIを使用していますか?それともAppharborに関連する何か?

答えて

1

SqlConnection同様

おかげで、あなたは(それ以外の場合はあなたのメッセージが配信のためにキューイングされている)Open()を呼び出す必要があります。

SqlConnectionとは異なり、あなたは火災アップがRedisConnectionたびにあなたがそれを必要はありません - 共有、スレッドセーフ、マルチプレクサとして使用されることを意図して - 単一の接続すなわちがどこかで開催され、多くの無関係の発信者が使用しています。もちろん、あなたはただ一つのことをする必要があるだけです!

+0

迅速な対応とヒントをありがとうございました!..接続が正常に機能します。それは待っている線を越える。何らかの理由でタスクが発生しました。結果行は次のようになります://データの処理中にエラーが発生しました:重大な操作が失敗しました:1:SELECT ..これはappharbor redisの問題ですか?私はローカルサーバー上のデータを取得できますか? –

+2

@DoubleScorpio 2つのデータベースがありますか?データベースは0ベースです。あなたが1つだけ持っている場合は、DB 0を使用してください。 –

+0

私はDB 0に設定し、それは動作します!!! ..あなたの助けに感謝!..私はちょうどクライアントで遊んでいたが、今それは私のコードを再構築するそれと何か良いものを作る:) ..もう一度ありがとう! –

関連する問題