/// <summary> /// 运行默认注册流程 /// </summary> protected void RegisterStart() { Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);//支持 GB2312 //注册开始 RegisterService register; //注册 CON2ET 全局 var senparcSetting = new SenparcSetting() { IsDebug = true }; var mockEnv = new Mock <IWebHostEnvironment>(); mockEnv.Setup(z => z.ContentRootPath).Returns(() => UnitTestHelper.RootPath); register = Senparc.CO2NET.AspNet.RegisterServices.RegisterService.Start(mockEnv.Object, senparcSetting); RegisterServiceCollection(); register.UseSenparcGlobal(false); //注册微信 //var senparcWeixinSetting = new SenparcWeixinSetting(true); register.UseSenparcWeixin(_senparcWeixinSetting, senparcSetting).RegisterTenpayRealV3(_senparcWeixinSetting, "微信 V3"); register.ChangeDefaultCacheNamespace("Senparc.Weixin Test Cache"); }
/// <summary> /// 注册 IServiceCollection 和 MemoryCache /// </summary> public void RegisterServiceCollection() { ServiceCollection = new ServiceCollection(); var configBuilder = new ConfigurationBuilder(); //configBuilder.AddJsonFile("appsettings.json", false, false); var config = configBuilder.Build(); Configuration = config; ServiceCollection.AddSenparcGlobalServices(config); _senparcSetting = new SenparcSetting() { IsDebug = true }; config.GetSection("SenparcSetting").Bind(_senparcSetting); ServiceCollection.AddMemoryCache();//使用内存缓存 MvcCoreBuilder = ServiceCollection.AddMvcCore(); //WebApiEngine wae = new WebApiEngine(new FindWeixinApiService(), 400); //wae.InitDynamicApi(builder, Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "..", "App_Data")); ServiceProvider = ServiceCollection.BuildServiceProvider(); }
/// <summary> /// 开始 Senparc.Weixin SDK 初始化参数流程 /// </summary> /// <param name="registerService"></param> /// <param name="senparcWeixinSetting">微信全局设置参数,必填</param> /// <param name="senparcSetting">用于提供 SenparcSetting.Cache_Redis_Configuration 和 Cache_Memcached_Configuration 两个参数,如果不使用这两种分布式缓存可传入null</param> /// <returns></returns> public static IRegisterService UseYoYoSenparcWeixin( this IRegisterService registerService, SenparcWeixinSetting senparcWeixinSetting, SenparcSetting senparcSetting = null) { return(registerService.UseSenparcWeixin(senparcWeixinSetting, senparcSetting)); }
/// <summary> /// 运行默认注册流程 /// </summary> protected void RegisterStart() { //注册开始 RegisterService register; //注册 CON2ET 全局 var senparcSetting = new SenparcSetting() { IsDebug = true }; #if NETCOREAPP2_0 || NETCOREAPP2_1 var mockEnv = new Mock <IHostingEnvironment>(); mockEnv.Setup(z => z.ContentRootPath).Returns(() => UnitTestHelper.RootPath); register = RegisterService.Start(mockEnv.Object, senparcSetting); RegisterServiceCollection(); #else register = RegisterService.Start(senparcSetting); #endif Func <IList <IDomainExtensionCacheStrategy> > func = () => { var list = new List <IDomainExtensionCacheStrategy>(); list.Add(LocalContainerCacheStrategy.Instance); list.Add(RedisContainerCacheStrategy.Instance); //list.Add(MemcachedContainerCacheStrategy.Instance); return(list); }; register.UseSenparcGlobal(false, func); //注册微信 var senparcWeixinSetting = new SenparcWeixinSetting(true); register.UseSenparcWeixin(senparcWeixinSetting); }
public void Fd() { /* CO2NET 全局注册开始 * 建议按照以下顺序进行注册 */ //设置全局 Debug 状态 var isGLobalDebug = true; var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); //CO2NET 全局注册,必须!! IRegisterService register = RegisterService.Start(senparcSetting) .UseSenparcGlobal(false, null); /* 微信配置开始 * 建议按照以下顺序进行注册 */ //设置微信 Debug 状态 var isWeixinDebug = true; var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); //微信全局注册,必须!! register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting); }
/// <summary> /// YoYo Senparc CO2NET 全局缓存配置(按需) /// </summary> /// <param name="registerService"></param> /// <param name="applicationBuilder"></param> /// <param name="senparcSetting"></param> /// <param name="customCacheNamespace">当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须)</param> /// <param name="configRedisAction">配置全局使用Redis缓存(按需,独立),此函数返回结果为true将启用redis</param> /// <returns></returns> public static IRegisterService UseYoYoSenparcCO2NETGlobalCache( this IRegisterService registerService, IApplicationBuilder applicationBuilder, SenparcSetting senparcSetting, string customCacheNamespace = null, Func <SenparcSetting, bool> configRedisAction = null) { // 全局缓存配置(按需) if (!string.IsNullOrWhiteSpace(customCacheNamespace)) { // 当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须) registerService.ChangeDefaultCacheNamespace(customCacheNamespace); } // 配置全局使用Redis缓存 if (configRedisAction == null) { return(registerService); } // 回调函数,返回true表示使用redis if (configRedisAction(senparcSetting)) { applicationBuilder.UseSenparcWeixinCacheRedis(); } return(registerService); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes); /* CO2NET 全局注册开始 * 建议按照以下顺序进行注册 */ //设置全局 Debug 状态 var isGLobalDebug = true; var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); //CO2NET 全局注册,必须!! IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(false, null); /* 微信配置开始 * 建议按照以下顺序进行注册 */ //设置微信 Debug 状态 var isWeixinDebug = true; var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); //微信全局注册,必须!! register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting); }
protected void Application_Start() { //初始化信息 MPBasicSetting.GetBasicSetting(); //MCComm.DBHelper.GetWebSqlConnection(); Sunnysoft.DAL.ActiveRecordDBHelper.InitSessionFactory(); AreaRegistration.RegisterAllAreas(); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); var isGLobalDebug = true; //设置全局 Debug 状态 var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); var register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); //CO2NET全局注册,必须! var isWeixinDebug = true; //设置微信 Debug 状态 var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);////微信全局注册,必须! ThreadUtility.Register(); Senparc.Weixin.MP.Containers.AccessTokenContainer.RegisterAsync(MPBasicSetting.AppID, MPBasicSetting.AppSecret, "公众号注册"); Senparc.Weixin.MP.Containers.JsApiTicketContainer.RegisterAsync(MPBasicSetting.AppID, MPBasicSetting.AppSecret, "公众号JSSDK注册"); }
// -- DPBMARK_END // -- DPBMARK Memcached /// <summary> /// 初步判断当前配置是否满足使用 Memcached(根据是否已经修改了默认配置字符串判断) /// </summary> /// <param name="senparcSetting"></param> /// <returns></returns> private bool UseMemcached(SenparcSetting senparcSetting, out string memcachedConfigurationStr) { memcachedConfigurationStr = senparcSetting.Cache_Memcached_Configuration; var useMemcached = !string.IsNullOrEmpty(memcachedConfigurationStr) && memcachedConfigurationStr != "#{Cache_Memcached_Configuration}#"; return(useMemcached); }
/// <summary> /// 微信信息缓存到Redis /// </summary> /// <param name="app"></param> /// <param name="options"></param> /// <returns></returns> public static IApplicationBuilder UseSenparcWeiXinWithRedis(this IApplicationBuilder app, IOptions <CacheOptions> options, IOptions <WechatAccountOptions> wechatAccoutnOpt) { var senparcsetting = new SenparcSetting { Cache_Redis_Configuration = options.Value.Servers, DefaultCacheNamespace = "TakedaWechatOP", IsDebug = false }; AccessTokenContainer.Register(wechatAccoutnOpt.Value.AppId, wechatAccoutnOpt.Value.AppSecret, wechatAccoutnOpt.Value.WechatName); var register = Senparc.CO2NET.RegisterServices.RegisterService.Start(senparcsetting).UseSenparcGlobal(); Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(options.Value.Servers); Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow(); app.UseSenparcWeixinCacheRedis(); var senparcWeixinSetting = new SenparcWeixinSetting { IsDebug = false, Items = new SenparcWeixinSettingItemCollection() }; Senparc.Weixin.Config.SenparcWeixinSetting = senparcWeixinSetting; Senparc.NeuChar.Register.RegisterApiBind(true); return(app); }
/// <summary> /// 获取扩展缓存策略 /// </summary> /// <returns></returns> private IList <IDomainExtensionCacheStrategy> GetExCacheStrategies(SenparcSetting senparcSetting) { var exContainerCacheStrategies = new List <IDomainExtensionCacheStrategy>(); senparcSetting = senparcSetting ?? new SenparcSetting(); return(exContainerCacheStrategies); }
/// <summary> /// 获取扩展缓存策略 /// </summary> /// <returns></returns> private IList <IDomainExtensionCacheStrategy> GetExCacheStrategies(SenparcSetting senparcSetting) { var exContainerCacheStrategies = new List <IDomainExtensionCacheStrategy>(); senparcSetting = senparcSetting ?? new SenparcSetting(); //注意:以下两个 if 判断仅作为演示,方便大家添加自定义的扩展缓存策略, // 只要进行了 register.UseSenparcWeixin() 操作,Container 的缓存策略下的 Local、Redis 和 Memcached 系统已经默认自动注册,无需操作! #region 演示扩展缓存注册方法 //判断Redis是否可用 var redisConfiguration = senparcSetting.Cache_Redis_Configuration; if ((!string.IsNullOrEmpty(redisConfiguration) && redisConfiguration != "Redis配置")) { exContainerCacheStrategies.Add(RedisContainerCacheStrategy.Instance); } //判断Memcached是否可用 var memcachedConfiguration = senparcSetting.Cache_Memcached_Configuration; if ((!string.IsNullOrEmpty(memcachedConfiguration) && memcachedConfiguration != "Memcached配置")) { exContainerCacheStrategies.Add(MemcachedContainerCacheStrategy.Instance);//TODO:如果没有进行配置会产生异常 } #endregion //扩展自定义的缓存策略 return(exContainerCacheStrategies); }
/// <summary> /// 判断当前配置是否满足使用 Redis(根据是否已经修改了默认配置字符串判断) /// </summary> /// <param name="senparcSetting"></param> /// <returns></returns> internal bool UseRedis(SenparcSetting senparcSetting, out string redisConfigurationStr) { redisConfigurationStr = senparcSetting.Cache_Redis_Configuration; var useRedis = !string.IsNullOrEmpty(redisConfigurationStr) && redisConfigurationStr != "#{Cache_Redis_Configuration}#" /*默认值,不启用*/; return(useRedis); }
/// <summary> /// 获取扩展缓存策略 /// </summary> /// <returns></returns> private IList <IDomainExtensionCacheStrategy> GetExCacheStrategies(SenparcSetting senparcSetting) { var exContainerCacheStrategies = new List <IDomainExtensionCacheStrategy>(); senparcSetting = senparcSetting ?? new SenparcSetting(); //注意:以下两个 if 判断仅作为演示,方便大家添加自定义的扩展缓存策略, #region 演示扩展缓存注册方法 /* * * //判断Redis是否可用 * var redisConfiguration = senparcSetting.Cache_Redis_Configuration; * if ((!string.IsNullOrEmpty(redisConfiguration) && redisConfiguration != "Redis配置")) * { * exContainerCacheStrategies.Add(RedisContainerCacheStrategy.Instance);//自定义的扩展缓存 * } * * //判断Memcached是否可用 * var memcachedConfiguration = senparcSetting.Cache_Memcached_Configuration; * if ((!string.IsNullOrEmpty(memcachedConfiguration) && memcachedConfiguration != "Memcached配置")) * { * exContainerCacheStrategies.Add(MemcachedContainerCacheStrategy.Instance);//TODO:如果没有进行配置会产生异常 * } */ #endregion //扩展自定义的缓存策略 return(exContainerCacheStrategies); }
/// <summary> /// 启用微信 /// </summary> /// <param name="env"></param> public static void UseWechat(IWebHostEnvironment env, SenparcSetting senparcSetting) { var registerService = senparcSetting.UseYoYoSenparcCO2NET(env.ContentRootPath); registerService = registerService.UseYoYoSenparcCO2NETGlobalCache(null, null) .RegisterTraceLog(ConfigTraceLog)//配置TraceLog .UseYoYoSenparcWeixin(null, senparcSetting); }
/// <summary> /// 开始 Senparc.CO2NET SDK 初始化参数流程 /// </summary> /// <returns></returns> public static RegisterService Start(SenparcSetting senparcSetting) { var register = new RegisterService(senparcSetting); //如果不注册此线程,则AccessToken、JsTicket等都无法使用SDK自动储存和管理。 register.RegisterThreads();//默认把线程注册好 return(register); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); Senparc.WebSocket.WebSocketConfig.RegisterRoutes(RouteTable.Routes); Senparc.WebSocket.WebSocketConfig.RegisterMessageHandler <CustomWebSocketMessageHandler>(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); var dt1 = DateTime.Now; /* * CO2NET 全局注册开始 * 建议按照以下顺序进行注册 */ /* * CO2NET 是从 Senparc.Weixin 分离的底层公共基础模块,经过了长达 6 年的迭代优化。 * 关于 CO2NET 在所有项目中的通用设置可参考 CO2NET 的 Sample: * https://github.com/Senparc/Senparc.CO2NET/blob/master/Sample/Senparc.CO2NET.Sample.netcore/Startup.cs */ //设置全局 Debug 状态 var isGLobalDebug = true; //全局设置参数,将被储存到 Senparc.CO2NET.Config.SenparcSetting var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); //也可以通过这种方法在程序任意位置设置全局 Debug 状态: //Senparc.CO2NET.Config.IsDebug = isGLobalDebug; //CO2NET 全局注册,必须!! IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); /* 微信配置开始 * 建议按照以下顺序进行注册 */ //设置微信 Debug 状态 var isWeixinDebug = true; //全局设置参数,将被储存到 Senparc.Weixin.Config.SenparcWeixinSetting var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); //也可以通过这种方法在程序任意位置设置微信的 Debug 状态: //Senparc.Weixin.Config.IsDebug = isWeixinDebug; register.UseSenparcWeixin(senparcWeixinSetting, Senparc.CO2NET.Config.SenparcSetting); WeixinTraceConfig();//配置微信日志记录 RegisterWeixinCache(); RegisterSenparcWeixin(register, senparcWeixinSetting); var dt2 = DateTime.Now; Senparc.Weixin.WeixinTrace.SendCustomLog("系统日志", "系统已经启动,启动时间:" + (dt2 - dt1).TotalMilliseconds + "ms"); }
void Init() { SenparcSetting senparcSetting = new SenparcSetting(Options.WeChatDevOptions.IsDebug); IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); //CO2NET全局注册,必须! SenparcWeixinSetting senparcWeixinSetting = new SenparcWeixinSetting(Options.WeChatDevOptions.IsDebug); register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting); ////微信全局注册,必须! AccessTokenContainer.RegisterAsync(Options.WeChatBaseOptions.AppId, Options.WeChatBaseOptions.Appsecret).GetAwaiter().GetResult(); }
/// <summary> /// 从 Web.Config 文件自动生成 SenparcSetting /// </summary> /// <param name="isDebug">设置 CO2NET 全局的 Debug 状态 </param> /// <returns></returns> public static SenparcSetting BuildFromWebConfig(bool isDebug) { var senparcSetting = new SenparcSetting(isDebug); senparcSetting.DefaultCacheNamespace = System.Configuration.ConfigurationManager.AppSettings["DefaultCacheNamespace"]; senparcSetting.SenparcUnionAgentKey = System.Configuration.ConfigurationManager.AppSettings["SenparcUnionAgentKey"]; senparcSetting.Cache_Redis_Configuration = System.Configuration.ConfigurationManager.AppSettings["Cache_Redis_Configuration"]; senparcSetting.Cache_Memcached_Configuration = System.Configuration.ConfigurationManager.AppSettings["Cache_Memcached_Configuration"]; return(senparcSetting); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //设置全局 Debug 状态 var isGLobalDebug = true; //全局设置参数,将被储存到 Senparc.CO2NET.Config.SenparcSetting var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); //也可以通过这种方法在程序任意位置设置全局 Debug 状态: //Senparc.CO2NET.Config.IsDebug = isGLobalDebug; //CO2NET 全局注册,必须!! IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); #region 配置和使用 Redis -- DPBMARK Redis //配置全局使用Redis缓存(按需,独立) var redisConfigurationStr = senparcSetting.Cache_Redis_Configuration; var useRedis = !string.IsNullOrEmpty(redisConfigurationStr) && redisConfigurationStr != "Redis配置"; if (useRedis)//这里为了方便不同环境的开发者进行配置,做成了判断的方式,实际开发环境一般是确定的,这里的if条件可以忽略 { Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(redisConfigurationStr); Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow();//键值对缓存策略(推荐) } #endregion // DPBMARK_END /* 微信配置开始 * 建议按照以下顺序进行注册 */ //设置微信 Debug 状态 var isWeixinDebug = true; //全局设置参数,将被储存到 Senparc.Weixin.Config.SenparcWeixinSetting var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); //也可以通过这种方法在程序任意位置设置微信的 Debug 状态: //Senparc.Weixin.Config.IsDebug = isWeixinDebug; //微信全局注册,必须!! register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting) //注册公众号(可注册多个) -- DPBMARK MP .RegisterMpAccount(senparcWeixinSetting, "【LY】测试公众号") // DPBMARK_END ; /* 微信配置结束 */ }
/// <summary> /// 开始 Senparc.CO2NET SDK 初始化参数流程(.NET Core) /// </summary> /// <param name="senparcSetting"></param> /// <param name="contentRootPath">asp.net core应用中IHostingEnvironment对象的ContentRootPath</param> /// <returns></returns> public static IRegisterService Start(SenparcSetting senparcSetting, string contentRootPath = "") { if (!string.IsNullOrWhiteSpace(contentRootPath)) { Config.RootDictionaryPath = contentRootPath; } var registerService = new YoYoSenparcRegisterService(senparcSetting); registerService.RegisterThreads(); return(registerService); }
protected void Session_Start(object sender, EventArgs e) { var isGLobalDebug = true; //设置全局 Debug 状态 var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); var register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); //CO2NET全局注册,必须! var isWeixinDebug = true; //设置微信 Debug 状态 var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);////微信全局注册,必须! }
/// <summary> /// 注册 /// </summary> public static void Register() { var register = RegisterService.Start(SenparcSetting.BuildFromWebConfig(true)).UseSenparcGlobal(); //CO2NET全局注册,必须! register.UseSenparcWeixin(SenparcWeixinSetting.BuildFromWebConfig(true), SenparcSetting.BuildFromWebConfig(true)); ////微信全局注册,必须! Dictionary <string, string> Deploy = GetDeploy(); foreach (var item in Deploy) { AccessTokenContainer.Register(item.Key, item.Value, "WX_" + item.Key); } }
public Program() { var configBuilder = new ConfigurationBuilder(); var senparcSetting = new SenparcSetting(); var config = configBuilder.Build(); _serviceCollection = new ServiceCollection(); _serviceCollection.AddSenparcGlobalServices(config);//Senparc.CO2NET 全局注册 _serviceProvider = _serviceCollection.BuildServiceProvider(); IRegisterService register = RegisterService.Start(senparcSetting) .UseSenparcGlobal(); }
public static IServiceCollection AddWork(this IServiceCollection services, IConfiguration configuration) { senparcSetting = configuration.Get <SenparcSetting>(); senparcWeixinSetting = configuration.Get <SenparcWeixinSetting>(); services.Configure <WorkSetting>(configuration.GetSection("WorkSetting")) .Configure <MpSetting>(configuration.GetSection("MpSetting")) .AddSenparcGlobalServices(configuration) .AddSenparcWeixinServices(configuration) .AddSingleton <IWorkApi, WorkApi>() .AddSingleton <MpApi>(); return(services); }
/// <summary> /// 开始YoYo Senparc.CO2NET SDK 初始化参数流程 /// /// (关于 UseYoYoSenparc() 的更多用法见 CO2NET Demo 中的 UseSenparcGlobal:https://github.com/Senparc/Senparc.CO2NET/blob/master/Sample/Senparc.CO2NET.Sample.netcore/Startup.cs) /// </summary> /// <param name="senparcSetting"></param> /// <param name="contentRootPath">提供网站根目录(env.ContentRootPath,env类型为IHostingEnvironment)</param> /// <param name="autoScanExtensionCacheStrategies">是否自动扫描全局的扩展缓存(会增加系统启动时间)</param> /// <param name="extensionCacheStrategiesFunc"> /// <para>需要手动注册的扩展缓存策略</para> /// <para>(LocalContainerCacheStrategy、RedisContainerCacheStrategy、MemcacheContainerCacheStrategy已经自动注册),</para> /// <para>如果设置为 null(注意:不是委托返回 null,是整个委托参数为 null),则自动使用反射扫描所有可能存在的扩展缓存策略</para> /// </param> /// <returns></returns> public static IRegisterService UseYoYoSenparcCO2NET( this SenparcSetting senparcSetting, string contentRootPath = "", bool autoScanExtensionCacheStrategies = false, Func <IList <IDomainExtensionCacheStrategy> > extensionCacheStrategiesFunc = null) { var registerService = YoyoAbpWechatRegisterService.Start(senparcSetting, contentRootPath); CacheStrategyDomainWarehouse.AutoScanDomainCacheStrategy(autoScanExtensionCacheStrategies, extensionCacheStrategiesFunc); return(registerService); }
/// <summary> /// 开始 Senparc.CO2NET SDK 初始化参数流程 /// </summary> /// <returns></returns> public static RegisterService Start(SenparcSetting senparcSetting) { var register = new RegisterService(senparcSetting); //提供网站根目录 Senparc.CO2NET.Config.RootDictionaryPath = AppDomain.CurrentDomain.BaseDirectory; //如果不注册此线程,则AccessToken、JsTicket等都无法使用SDK自动储存和管理。 register.RegisterThreads();//默认把线程注册好 return(register); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterWebSocket();//微信注册WebSocket模块(按需,必须执行在RouteConfig.RegisterRoutes()之前) WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); /* * CO2NET 全局注册开始 * 建议按照以下顺序进行注册 */ /* * CO2NET 是从 Senparc.Weixin 分离的底层公共基础模块,经过了长达 6 年的迭代优化。 * 关于 CO2NET 在所有项目中的通用设置可参考 CO2NET 的 Sample: * https://github.com/Senparc/Senparc.CO2NET/blob/master/Sample/Senparc.CO2NET.Sample.netcore/Startup.cs */ //设置全局 Debug 状态 var isGLobalDebug = true; //全局设置参数,将被储存到 Senparc.CO2NET.Config.SenparcSetting var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); //也可以通过这种方法在程序任意位置设置全局 Debug 状态: //Senparc.CO2NET.Config.IsDebug = isGLobalDebug; //CO2NET 全局注册,必须!! IRegisterService register = RegisterService.Start(senparcSetting) .UseSenparcGlobal(false, () => GetExCacheStrategies(senparcSetting)) //这里没有 ; 下面接着写 #region 注册分自定义(分布式)缓存策略(按需,如果需要,必须放在第一个) // 当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须) // 也可以在 senparcSetting.DefaultCacheNamespace 属性上进行设置 .ChangeDefaultCacheNamespace("DefaultCO2NETCache") //配置Redis缓存 .RegisterCacheRedis( senparcSetting.Cache_Redis_Configuration, redisConfiguration => (!string.IsNullOrEmpty(redisConfiguration) && redisConfiguration != "Redis配置") ? RedisObjectCacheStrategy.Instance : null) //配置Memcached缓存 .RegisterCacheMemcached( new Dictionary <string, int>() /* { "localhost", 9101 }*/ }
protected void Application_Start() { RouteConfig.RegisterRoutes(RouteTable.Routes); var isGLobalDebug = false; //设置全局 Debug 状态 var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); var register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); //CO2NET全局注册,必须! var isWeixinDebug = false; //设置微信 Debug 状态 var senparcWeixinSetting = SenparcWeixinSetting.BuildFromWebConfig(isWeixinDebug); register.UseSenparcWeixin(senparcWeixinSetting, senparcSetting);////微信全局注册,必须! }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RegisterWebSocket();//微信注册WebSocket模块(按需,必须执行在RouteConfig.RegisterRoutes()之前) WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); /* CO2NET 全局注册开始 * 建议按照以下顺序进行注册 */ //设置全局 Debug 状态 var isGLobalDebug = true; //全局设置参数,将被储存到 Senparc.CO2NET.Config.SenparcSetting var senparcSetting = SenparcSetting.BuildFromWebConfig(isGLobalDebug); //也可以通过这种方法在程序任意位置设置全局 Debug 状态: //Senparc.CO2NET.Config.IsDebug = isGLobalDebug; //CO2NET 全局注册,必须!! IRegisterService register = RegisterService.Start(senparcSetting) .UseSenparcGlobal(false, () => GetExCacheStrategies(senparcSetting)) //这里没有 ; 下面接着写 #region 注册线程,在 RegisterService.Start() 中已经自动注册,此处也可以省略 .RegisterThreads() //启动线程,RegisterThreads()也可以省略,在Start()中已经自动注册 #endregion #region 注册分自定义(分布式)缓存策略(按需,如果需要,必须放在第一个) // 当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须) // 也可以在 senparcSetting.DefaultCacheNamespace 属性上进行设置 .ChangeDefaultCacheNamespace("DefaultCO2NETCache") //配置Redis缓存 .RegisterCacheRedis( senparcSetting.Cache_Redis_Configuration, redisConfiguration => (!string.IsNullOrEmpty(redisConfiguration) && redisConfiguration != "Redis配置") ? RedisObjectCacheStrategy.Instance : null) //配置Memcached缓存 .RegisterCacheMemcached( new Dictionary <string, int>() /* { "localhost", 9101 }*/ }