执行函数时Azure Redis异常:MyFunction - >无法找到程序集'MySolution.MyProject.MyService

时间:2018-01-10 17:37:20

标签: c# .net azure stackexchange.redis cachingframework.redis

使用CachingFramework.Redis时我试图将一个对象插入一个键,字段哈希......

enter code here
var map = new MyMapping
{
   DataSourceId = source.DataSourceId,
   ExternalId = source.ExternalId,
   StoreId = source.StoreId ?? 0,
   LastConnection = source.LastConnection,
   ApiKey = source.ApiKey
};
Context.Cache.SetHashed("MyRedisKey", "MyFieldKey", map, TimeSpan.FromHours(1));

但是,当我试图将哈希值取回时......

var MyCachedValue = Context.Cache.GetHashed<MyMapping>(("MyRedisKey", "MyFieldKey");

我收到了错误......

  

“Microsoft.Azure.WebJobs.Host.FunctionInvocationException:执行函数时出现异常:MyFunction ---&gt; System.Runtime.Serialization.SerializationException:无法找到程序集'MySolution.MyProject.MyService,Version = 1.0.0.0, Culture = neutral,PublicKeyToken = null'。\ r \ n async Microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor.FunctionInvocationFilterInvoker.InvokeAsync(Object instance,Object [] arguments)\ r \ n at async Microsoft.Azure.WebJobs .Host.Executors.FunctionExecutor.InvokeAsync(IFunctionInvoker invoker,ParameterHelper parameterHelper,CancellationTokenSource timeoutTokenSource,CancellationTokenSource functionCancellationTokenSource,Boolean throwOnTimeout,TimeSpan timerInterval,IFunctionInstance instance)\ r \ n .......

1 个答案:

答案 0 :(得分:1)

您是否在不同的程序集中设置和检索值?看起来可能就是这种情况。

在这种情况下,您需要在共享程序集中定义Map,该程序集由设置值的项目以及获取值的项目引用。

  1. GetterProject
  2. SetterProject
  3. SharedModels
  4. 1和2都应该引用3,这就是你应该定义存储在缓存中的对象的地方。