推測原因是老系統中有地方引用了舊版本的 StackExchange.Redis,原因是 StackExchange.Redis 1.2.6 版本未提供針對 .net 4.6 以上的支援,導致庫引用會失敗,目前已經發布了新版本,支援 .net 4.6.1,可以更新到最新的 Senparc.Weixin.Cache.Redis:https://www.nuget.org/packages/Senparc.Weixin.Cache.Redis
測試版已經打包,可以參考其中的必要設定,下載:https://files.cnblogs.com/files/szw/Cache-Test-WebApplication2.zip
測試方法:
1、開啟解決方案
2、Ctrl+F5 開啟 IISExpress 除錯
3、點選頂部“關於”選單,進入測試頁面(http://localhost:55428/Home/About)
正確情況下可以返回如下字串:
排除問題請下載官方Demo進行測試。
當前測試專案中的關鍵設定程式碼(global.asax.cs)如下:
using Senparc.CO2NET; using Senparc.CO2NET.Cache; using Senparc.CO2NET.RegisterServices; using Senparc.Weixin; using Senparc.Weixin.Cache.Redis; using Senparc.Weixin.Entities; using Senparc.Weixin.MP; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace WebApplication2 { public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); var redisConnectionString = "localhost:6379"; //全域性配置 //全域性設定引數,將被儲存到 Senparc.CO2NET.Config.SenparcSetting Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(redisConnectionString); Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow();//鍵值對快取策略(推薦) var senparcSetting = SenparcSetting.BuildFromWebConfig(false); var register = RegisterService.Start(senparcSetting) .UseSenparcGlobal(false, () => { var exContainerCacheStrategies = new List<IDomainExtensionCacheStrategy>(); senparcSetting = senparcSetting ?? new SenparcSetting(); exContainerCacheStrategies.Add(RedisContainerCacheStrategy.Instance); return exContainerCacheStrategies; }) .RegisterThreads()//啟動執行緒,RegisterThreads()也可以省略,在Start()中已經自動註冊 .ChangeDefaultCacheNamespace(senparcSetting.DefaultCacheNamespace);// 當同一個分散式快取同時服務於多個網站(應用程式池)時,可以使用名稱空間將其隔離(非必須) //微信配置 var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(false); register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting) .RegisterMpAccount(senparcWeixinSetting.WeixinAppId, senparcWeixinSetting.WeixinAppSecret, "測試"); } } }