在nuget中下載ServiceStack.Redis,但是運行之後會出現一個問題: Exception: “Com.JinYiWei.Cache.RedisHelper”的類型初始值設定項引發異常。System.TypeInitializationException: “Com.JinYiWei. ...
在nuget中下載ServiceStack.Redis,但是運行之後會出現一個問題:
Exception: “Com.JinYiWei.Cache.RedisHelper”的類型初始值設定項引發異常。
System.TypeInitializationException: “Com.JinYiWei.Cache.RedisHelper”的類型初始值設定項引發異常。 ---> System.TypeLoadException: 程式集“ServiceStack.Redis, Version=3.9.71.0, Culture=neutral, PublicKeyToken=null”中的類型“ServiceStack.Redis.RedisNativeClient”的方法“get_Db”沒有實現。
查了下原來是版本問題,我的解決方法如下:
修改幾個重要的dll的版本:
<package id="ServiceStack.Common" version="3.9.71" targetFramework="net45" />
<package id="ServiceStack.Redis" version="3.9.71" targetFramework="net45" />
<package id="ServiceStack.Text" version="3.9.11" targetFramework="net45" />
如果不好下載,使用nuget命令就可以了:
Install-Package ServiceStack.Common -Version 3.9.71
code如下:
using(RedisClient redisClient = new RedisClient("123.207.96.138", 6379)) { string str = "second"; bool IsSet = false; if (IsSet = redisClient.Set<string>("second", "www.cjjjs.com")) { string getMessage = redisClient.Get<string>(str); Console.WriteLine(getMessage); } else { Console.WriteLine("redis鍵入鍵值失敗..."); } Console.Read(); }
但是有個地方要註意,使用Set函數的時候,因為使用Get<string>來獲取,設置的時候就需要Set<string>來設置,我已開始使用的是Set,導致不能獲取到值,這是要值得註意的地方。
嘗試了一下在兩個不同的站點部署兩個網站,使用redis來存儲數據,的確成功了,這就有點類似於使用資料庫來存儲了,只不過redis這樣的nosql資料庫效率更高。原本我是使用redis來存儲session,但是在跨域方面就是失敗!!!嘗試了兩種實現都不行,參考如下:
【新手總結】在.Net項目中使用Redis作為緩存服務
《分散式中Redis實現Session終結篇》
以及我的博客:
asp.net 分散式探討之Session共用問題
哎,後續研究吧,反正一跨域就是失敗。
哎,寢室很煩,很吵,沒有心思寫代碼,寫博客。圖書館沒電!!!這坑比學校,沒有校園網就算了,圖書館還時不時沒電。