ASP.NET Core集成Azure Redis与Microsoft.Extensions.Caching.Distributed启动失败排查
问题详情
我正在项目中实现Microsoft.Extensions.Caching.Distributed组件,搭配Azure Redis缓存服务使用。已在startup.cs中添加如下配置代码:
services.AddStackExchangeRedisCache(options => { options.Configuration = Configuration.GetConnectionString("RedisConnectionString"); options.InstanceName = "NAME"; });
团队内美国地区的开发者运行应用一切正常,但其他国家的开发者启动应用时会出现错误(错误表现为应用进程启动后无法完成初始化,最终触发进程超时终止)。注释掉上述Redis缓存配置代码后,应用即可正常启动。
目前已排除Azure Redis防火墙的问题——这些开发者可以通过其他应用正常访问该Redis服务器。我的缓存读取实现代码如下:
public T Get<T>(string key) { string jsonValue = _cache.GetString(key); if (jsonValue == null) { return default(T); // 未找到缓存键 } return JsonConvert.DeserializeObject<T>(jsonValue); }
补充Windows事件日志记录:
服务应用池「AppName」的工作进程「10288」未能在规定时间内停止「http」协议的监听通道。数据字段包含错误编号。 2:12 服务应用池「AppName」、进程ID为「10288」的工作进程被判定为异常(详见之前的事件日志消息),但由于有调试器附加到该进程,Windows进程激活服务将忽略此错误。 2:12 服务应用池「AppName」的某个进程在关闭时超出时间限制。进程ID为「10288」。
请问导致该问题的可能原因是什么?
内容的提问来源于stack exchange,提问作者TheDizzle
相关产品推荐
相关产品推荐

