2012-04-27 36 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? 
        } 
       } 

然而,问题是它正确地设置该字符串,但正在尝试从键值存储相同的字符串时,它抛出一个超时异常等待任务执行。但是,此代码适用于我的本地Redis服务器连接。

我是否以错误的方式使用API​​?或者这与Appharbor有关?

感谢

回答

1

SqlConnection,你需要调用Open()(否则你的邮件排队等待传递)。

不像SqlConnection,你应该火了RedisConnection每次你需要它的时候 - 它的目的是作为一个共享的,线程安全的,多路复用器 - 即一个连接的地方举行,由许多不相关的呼叫者使用。除非你只需要做一件事!

+0

感谢您的快速反应和提示!现在的连接工作。它越过了等待线。但出于某种原因的任务。结果行我得到以下内容:/ /错误处理数据:关键操作失败:1:选择..这是一个应用程序redis问题?..我可以在我的本地服务器上获取数据? – 2012-04-27 16:51:59

+2

@DoubleScorpio你有2个数据库吗?数据库基于0;如果你只有1,使用数据库0. – 2012-04-27 17:05:17

+0

我设置为数据库0和它的工作!!! ..感谢您的帮助!..我只是玩弄客户,但现在,它的工作原理我将重构我的代码并用它建立一些好东西:)再次感谢! – 2012-04-27 17:11:56

相关问题