我尝试将Redis缓存支持添加到我的.Net Core 2.0应用程序,并在发布到Azure App Services后出现问题。
我已经在appsetting.json中指定了我的Azure Redis缓存的连接字符串,将所需的位添加到Startup.cs并测试了在本地成功存储和检索数据。
应用程序发布后,无法启动,只报告启动应用程序时出现问题。
Startup.cs中似乎导致问题的一行是:
services.AddDistributedRedisCache(o => { o.Configuration = redisConnection; });
字符串" redisConnection"上面填充使用:
string redisConnection = Configuration.GetConnectionString("Redis");
我不确定为什么只有在发布时才会失败。 如何调试失败的原因?
编辑: 我已经成功地解决了这个错误,指的是正在使用的Microsoft.Extensions.Caching.Redis的版本。
FileLoadException:无法加载文件或程序集 ' Microsoft.Extensions.Caching.Redis,Version = 2.0.1.0,Culture = neutral, 公钥= adb9793829ddae60&#39 ;.定位组件的清单 定义与程序集引用不匹配。 (例外 HRESULT:0x80131040) Bootstrap_CoreApp.Startup.ConfigureServices(IServiceCollection 服务) System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() Microsoft.AspNetCore.Hosting.ConventionBasedStartup.ConfigureServices(IServiceCollection 服务) Microsoft.AspNetCore.Hosting.Internal.WebHost.EnsureApplicationServices() Microsoft.AspNetCore.Hosting.Internal.WebHost.BuildApplication()
我不确定为什么这是一个问题,因为项目中引用的NuGet包设置为使用版本2.0.1
答案 0 :(得分:2)
在我的情况下,我发现我在项目中添加了两个nuget包:
它在本地工作,但在Azure中不起作用。
然后我从项目中删除了Microsoft.Extensions.Caching.Redis.Core,将项目部署到Azure并且站点启动时没有任何问题。