ServiceStack Redis v4.0.52 IRedisClient.Db setter未按预期工作

时间:2016-01-29 18:21:55

标签: servicestack.redis

我们最近将项目中的ServiceStack DLL从版本4.0.38升级到版本4.0.52。我们正在打这样的电话:

test_q

在版本4.0.38中,此调用正确地导致了DB 3(select 3)中Dim oNS As Object Dim oRDOSess As Object Dim oRDOItem As Object Debug.Print "Creating Redemption Object ..." ' This requires: http://www.dimastr.com/redemption/download.htm Set oRDOSess = CreateObject("Redemption.RDOSession") Set oNS = Nothing Set oNS = Outlook.GetNamespace("MAPI") oNS.Logon oRDOSess.MAPIOBJECT = oNS.MAPIOBJECT Set oRDOItem = oRDOSess.GetMessageFromID(incomingMail.EntryID, incomingMail.Parent.StoreID) Debug.Print "Trying to change conversation topic ..." oRDOItem.ConversationTopic = incomingMail.Subject Debug.Print "Trying to change conversation index ..." oRDOItem.Fields("http://schemas.microsoft.com/mapi/proptag/0x00710102") = Null Debug.Print "Saving modified mail item ..." oRDOItem.Save 列表中的项目。但是,当我们升级到版本4.0.52时,DB到3的设置不再有效,并且该项目最终在默认的DB 0中。

这是一个错误还是API有变化?

1 个答案:

答案 0 :(得分:3)

这是现在解决的行为更改in this commit,这是因为GetClient()现在已经返回已连接的客户端。此更改可从v4.0.53获得,现在为available on MyGet

强制数据库更改为已连接客户端的一种方法是使用显式ChangeDb() API,例如:

((RedisClient)client).ChangeDb(3);

另一种选择是在连接字符串中指定Db,例如:

var clientManager = new BasicRedisClientManager("127.0.0.1?db=3");