public void ConfigureServices(IServiceCollection services)
{
//..
services.AddSenparcGlobalServices(Configuration);
services.AddSenparcWeixinServices(Configuration);
//..
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions<SenparcSetting> senparcSetting, IOptions<SenparcWeixinSetting> senparcWeixinSetting)
{
app.UseRouting();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "****V1");
c.RoutePrefix = string.Empty;
});
// 启动 CO2NET 全局注册,必须!
// 关于 UseSenparcGlobal() 的更多用法见 CO2NET Demo:
https://github.com/Senparc/Senparc.CO2NET/blob/master/Sample/Senparc.CO2NET.Sample.netcore3/Startup.cs
var registerService = app.UseSenparcGlobal(env, senparcSetting.Value, globalRegister =>
{
//配置全局使用Redis缓存(按需,独立)
/* 说明:
* 1、Redis 的连接字符串信息会从 Config.SenparcSetting.Cache_Redis_Configuration 自动获取并注册,如不需要修改,下方方法可以忽略
/* 2、如需手动修改,可以通过下方 SetConfigurationOption 方法手动设置 Redis 链接信息(仅修改配置,不立即启用)
*/
Senparc.CO2NET.Cache.CsRedis.Register.SetConfigurationOption(senparcSetting.Value.Cache_Redis_Configuration);
//以下会立即将全局缓存设置为 Redis
Senparc.CO2NET.Cache.CsRedis.Register.UseKeyValueRedisNow();//键值对缓存策略(推荐)
}, true)
//使用 Senparc.Weixin SDK
.UseSenparcWeixin(senparcWeixinSetting.Value, weixinRegister =>
{
weixinRegister.UseSenparcWeixinCacheCsRedis();
// 注册企业号(按需) -- DPBMARK Work
//注册企业微信(可注册多个)
weixinRegister.RegisterWorkAccount(senparcWeixinSetting.Value, "企业微信");
});
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
配置文件
//CO2NET 设置
"SenparcSetting": {
//以下为 CO2NET 的 SenparcSetting 全局配置,请勿修改 key,勿删除任何项
"IsDebug": false,
"DefaultCacheNamespace": "DefaultCache",
//分布式缓存
"Cache_Redis_Configuration": "redis1:6369,redis2:6369,redis3:6369,password=********,defaultDatabase=6",
"SenparcUnionAgentKey": "Homsom:SenparcUnionAgentKey"
},
//Senparc.Weixin SDK 设置
"SenparcWeixinSetting": {
//以下为 Senparc.Weixin 的 SenparcWeixinSetting 微信配置
//注意:所有的字符串值都可能被用于字典索引,因此请勿留空字符串(但可以根据需要,删除对应的整条设置)!
//微信全局
"IsDebug": true,
//企业微信
"WeixinCorpId": "",
"WeixinCorpAgentId": "",
"WeixinCorpSecret": "",
"WeixinCorpToken": "",
"WeixinCorpEncodingAESKey": ""
},
at System.ThrowHelper.ThrowAggregateException(List`1 exceptions)
at System.Threading.Tasks.Task.WaitAllCore(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)
at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout)
at Senparc.Weixin.Work.Containers.ProviderTokenContainer.Register(String corpId, String corpSecret, String name)
at Senparc.Weixin.Work.Register.RegisterWorkAccount(IRegisterService registerService, String weixinCorpId, String weixinCorpSecret, String name)
at Senparc.Weixin.Work.Register.RegisterWorkAccount(IRegisterService registerService, ISenparcWeixinSettingForWork weixinSettingForWork, String name)
at Homsom.EnterpriseWechat.Api.Startup.<>c__DisplayClass5_0.<Configure>b__2(IRegisterService weixinRegister) in D:\WorkDocument\NewWorkLibDocument\Homsom.WeiXin.Work.ThirdParty\src\Homsom.EnterpriseWechat.Api\Startup.cs:line 119
at Senparc.Weixin.WeixinRegister.UseSenparcWeixin(IRegisterService registerService, SenparcWeixinSetting senparcWeixinSetting, Action`1 registerConfigure)
at Homsom.EnterpriseWechat.Api.Startup.Configure(IApplicationBuilder app, IWebHostEnvironment env, IOptions`1 senparcSetting, IOptions`1 senparcWeixinSetting) in D:\WorkDocument\NewWorkLibDocument\Homsom.WeiXin.Work.ThirdParty\src\Homsom.EnterpriseWechat.Api\Startup.cs:line 100
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.Invoke(Object instance, IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.ConfigureBuilder.<>c__DisplayClass4_0.<Build>b__0(IApplicationBuilder builder)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__2(IApplicationBuilder app)
at Microsoft.AspNetCore.Mvc.Filters.MiddlewareFilterBuilderStartupFilter.<>c__DisplayClass0_0.<Configure>g__MiddlewareFilterBuilder|0(IApplicationBuilder builder)
at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
at Microsoft.AspNetCore.Hosting.GenericWebHostService.<StartAsync>d__31.MoveNext()
在注册企业微信的地方会报错,排查下来应该是redis配置错误。
现在用的redis集群是一主两从,只连接主redis就没问题,redis配置集群就会出现错误
------------------
我的 GitHub:
https://github.com/541244266@qq.com