使用Redis缓存进行.Net Core 2.0内部服务器错误

时间:2018-03-16 16:23:41

标签: c# asp.net-core redis

我尝试将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

1 个答案:

答案 0 :(得分:2)

在我的情况下,我发现我在项目中添加了两个nuget包:

  1. Microsoft.Extensions.Caching.Redis版本2.0.1
  2. Microsoft.Extensions.Caching.Redis.Core版本1.0.3
  3. 它在本地工作,但在Azure中不起作用。

    然后我从项目中删除了Microsoft.Extensions.Caching.Redis.Core,将项目部署到Azure并且站点启动时没有任何问题。