static void Main(string[] args) { #region 初始化Configuration 和 Redis GlobalContext.Configuration = new ConfigurationBuilder() .SetBasePath(AppContext.BaseDirectory) .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables().Build(); #if DEBUG var redisConfigurationStr = GlobalContext.Configuration.GetSection("CacheDatabase:ConnectionStringDebug").Value; #else var redisConfigurationStr = GlobalContext.Configuration.GetSection("CacheDatabase:ConnectionString").Value; #endif RedisConnectionHelper.Initialize(redisConfigurationStr, "QEBB:"); #endregion #region 注释掉的 // #region 初始化微信 // var builder = new ConfigurationBuilder() // .SetBasePath(AppContext.BaseDirectory) // .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) // .AddEnvironmentVariables(); // GlobalContext.Configuration = builder.Build(); // string appId = GlobalContext.Configuration.GetSection("WxConfig:AppId").Value; // string secret = GlobalContext.Configuration.GetSection("WxConfig:Secret").Value; // Console.WriteLine(appId + "@" + secret); // // 开始注册 // SenparcSetting senparcSetting = new SenparcSetting(); // IRegisterService register = RegisterService.Start(senparcSetting).UseSenparcGlobal(); // // 当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须) // register.ChangeDefaultCacheNamespace("QwfCache"); // //配置全局使用Redis缓存(按需,独立) //#if DEBUG // var redisConfigurationStr = GlobalContext.Configuration.GetSection("CacheDatabase:ConnectionStringDebug").Value; //#else // var redisConfigurationStr = GlobalContext.Configuration.GetSection("CacheDatabase:ConnectionString").Value; //#endif // senparcSetting.Cache_Redis_Configuration = redisConfigurationStr; // 必须的,否则会错误 // Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(redisConfigurationStr); // StackExchange.Redis库 // Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow(); // 键值对缓存策略(推荐) // Senparc.CO2NET.APM.Config.EnableAPM = false; // // 微信相关配置 // // 微信缓存(按需,必须放在配置开头,以确保其他可能依赖到缓存的注册过程使用正确的配置) // // 注意:如果使用非本地缓存,而不执行本块注册代码,将会收到“当前扩展缓存策略没有进行注册”的异常 // // 微信的 Redis 缓存,如果不使用则注释掉(开启前必须保证配置有效,否则会抛错) // register.UseSenparcWeixinCacheRedis(); // StackExchange.Redis // if (!AccessTokenContainer.CheckRegistered(appId)) // { // register.RegisterMpAccount( // GlobalContext.Configuration.GetSection("WxConfig:AppId").Value, // GlobalContext.Configuration.GetSection("WxConfig:Secret").Value, // "茵茵优选"); // } // var token = AccessTokenContainer.GetAccessToken(appId); // Console.WriteLine("Token:" + token); // #endregion // #region 创建参数二维码 // Console.WriteLine("是否创建参数二维码(Y/N)"); // if (Console.ReadLine().ToLower().Equals("y")) // { // Console.WriteLine("请输入二维码的KEY"); // var qrkey = Console.ReadLine(); // Console.WriteLine(qrkey); // Senparc.Weixin.MP.AdvancedAPIs.QrCode.CreateQrCodeResult qrCode = Senparc.Weixin.MP.AdvancedAPIs.QrCodeApi.Create(appId, // 60 * 60 * 24 * 365, 0, QrCode_ActionName.QR_LIMIT_STR_SCENE, qrkey); // string qrLink = Senparc.Weixin.MP.AdvancedAPIs.QrCodeApi.GetShowQrCodeUrl(qrCode.ticket); // Console.WriteLine(qrLink); // } // #endregion #endregion string token = Yiwan.YouzanAPI.YozClient.GetToken().Result; //var (success, data) = Yiwan.YouzanAPI.UserTags.TagsAdd("oAtpFwcxvxtIg0MMRMScGAPUncsA", "测试标签").Result; //Console.WriteLine(success.ToString()); Console.WriteLine(token); //Console.WriteLine(JsonConvert.SerializeObject(data)); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions <SenparcSetting> senparcSetting, IOptions <SenparcWeixinSetting> senparcWeixinSetting) { // 启用请求回退 //app.UseEnableRequestRewind(); if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } else { app.UseExceptionHandler("/Home/Error"); // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. app.UseHsts(); } app.UseHttpsRedirection(); app.UseStaticFiles(); app.UseRouting(); #region 注册Senparc微信 // 启动 CO2NET 全局注册,必须! var registerService = app.UseSenparcGlobal(env, senparcSetting.Value, globalRegister => { #region CO2NET 全局配置 // 当同一个分布式缓存同时服务于多个网站(应用程序池)时,可以使用命名空间将其隔离(非必须) globalRegister.ChangeDefaultCacheNamespace("QwfCache"); //配置全局使用Redis缓存(按需,独立) #if DEBUG var redisConfigurationStr = Configuration.GetSection("CacheDatabase:ConnectionStringDebug").Value; #else var redisConfigurationStr = Configuration.GetSection("CacheDatabase:ConnectionString").Value; #endif senparcSetting.Value.Cache_Redis_Configuration = redisConfigurationStr; // 必须的,否则会错误 //Senparc.CO2NET.Cache.CsRedis.Register.SetConfigurationOption(redisConfigurationStr); //以下会立即将全局缓存设置为 Redis //Senparc.CO2NET.Cache.CsRedis.Register.UseKeyValueRedisNow(); // CsRedis库 键值对缓存策略(推荐) //Senparc.CO2NET.Cache.CsRedis.Register.UseHashRedisNow(); // CsRedis库 HashSet储存格式的缓存策略 Senparc.CO2NET.Cache.Redis.Register.SetConfigurationOption(redisConfigurationStr); // StackExchange.Redis库 Senparc.CO2NET.Cache.Redis.Register.UseKeyValueRedisNow(); // 键值对缓存策略(推荐) #region 注册日志(按需,建议) // globalRegister.RegisterTraceLog(ConfigTraceLog);//配置TraceLog #endregion // APM 系统运行状态统计记录配置 默认已经为开启,如果需要关闭,则设置为 false Senparc.CO2NET.APM.Config.EnableAPM = false; #endregion }, true); // 使用 Senparc.Weixin SDK registerService.UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister => { #region 微信相关配置 // 微信缓存(按需,必须放在配置开头,以确保其他可能依赖到缓存的注册过程使用正确的配置) // 注意:如果使用非本地缓存,而不执行本块注册代码,将会收到“当前扩展缓存策略没有进行注册”的异常 // 微信的 Redis 缓存,如果不使用则注释掉(开启前必须保证配置有效,否则会抛错) weixinRegister.UseSenparcWeixinCacheRedis(); // StackExchange.Redis if (!AccessTokenContainer.CheckRegistered(Configuration.GetSection("WxConfig:AppId").Value)) { // 注册公众号(可注册多个) weixinRegister.RegisterMpAccount( Configuration.GetSection("WxConfig:AppId").Value, Configuration.GetSection("WxConfig:Secret").Value, "茵茵优选"); } #endregion }); #endregion app.UseAuthorization(); // 需要在注册微信 SDK 之后执行 #region 初始化Redis配置 GlobalData.EntityNamespace = "Qwf.Data.Entity"; #if DEBUG var redisConfigurationStr = GlobalContext.Configuration.GetSection("CacheDatabase:ConnectionStringDebug").Value; #else var redisConfigurationStr = GlobalContext.Configuration.GetSection("CacheDatabase:ConnectionString").Value; #endif RedisConnectionHelper.Initialize(redisConfigurationStr, "QEBB:"); #endregion app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "weixin_msg", pattern: "Weixin/{appId?}"); endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); endpoints.MapAreaControllerRoute( name: "areas", "areas", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); }); }