0

messageHandler.ExecuteAsync 执行异常

微信开发 · liruxiao · 查看 291 次 · 于 88天前

异常情况:
[图片]

已添加中间件
[图片]
您尚未登录,请:网站登录 or 微信登录
共收到 6 条回复
0

liruxiao 88天前

感谢回复。已解决! 需要增加内存缓存服务--services.AddMemoryCache(),以及管道要注册微信--weixinRegister.RegisterWorkAccount(senparcWeixinSetting.Value, "xxxxxxx");

1

Senparc 88天前

这个方法不能定位到具体的问题,因为Execute内部会执行外部的自定义(包括委托和重写)的代码。

您可以先部署一个原版的 Sample 看一下效果,然后对照一下,比如 startup.cs 里面是否缺少了任何注册的代码。帮看您提供的日志,感觉是使用了内存缓存,但是没有注册。

0

liruxiao 88天前

这个方法:await messageHandler.ExecuteAsync(new CancellationToken());   报错的。这是senparc内置的1个方法,没法看到方法内部的报错情况吧。 我用异常捕捉(try,catch),进不到catch里面。 详细的报错日志如下,看不出什么问题。


System.NullReferenceException
 HResult=0x80004003
 Message=Object reference not set to an instance of an object.
 Source=Microsoft.Extensions.Caching.Abstractions
 StackTrace:
  at Microsoft.Extensions.Caching.Memory.CacheExtensions.Get(IMemoryCache cache, Object key)
  at Senparc.CO2NET.Cache.LocalObjectCacheStrategy.CheckExisted(String key, Boolean isFullKey)
  at Senparc.CO2NET.Cache.LocalObjectCacheStrategy.<>c__DisplayClass19_0.<CheckExistedAsync>b__0()
  at System.Threading.Tasks.Task`1.InnerInvoke()
  at System.Threading.Tasks.Task.<>c.<.cctor>b__274_0(Object obj)
  at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
  at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
  at Senparc.CO2NET.Cache.LocalObjectCacheStrategy.<CheckExistedAsync>d__19.MoveNext()
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
  at Senparc.NeuChar.Context.GlobalMessageContext`3.<GetMessageContextAsync>d__25.MoveNext()
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
  at Senparc.NeuChar.Context.GlobalMessageContext`3.<GetMessageContextAsync>d__24.MoveNext()
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
  at Senparc.NeuChar.Context.GlobalMessageContext`3.<GetMessageContextAsync>d__26.MoveNext()
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
  at Senparc.NeuChar.MessageHandlers.MessageHandler`3.<GetCurrentMessageContext>d__17.MoveNext()
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.ConfiguredTaskAwaitable`1.ConfiguredTaskAwaiter.GetResult()
  at Senparc.NeuChar.MessageHandlers.MessageHandler`3.CheckMessageRepeat()
  at Senparc.NeuChar.MessageHandlers.MessageHandler`3.<ExecuteAsync>d__9.MoveNext()
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
  at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
  at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
  at WorkWXWebAPI.Controllers.InteractionController.<PostAsync>d__5.MoveNext() in D:\ASP.Net App\WorkWXWebAPI\Controllers\InteractionController.cs:line 97

 此异常最初是在此调用堆栈中引发的:
   [外部代码]
   WorkWXWebAPI.Controllers.InteractionController.PostAsync(string, string, string) (位于 InteractionController.cs 中)

0

Senparc 88天前

打断点调试或者靠日志输出看一下,什么对象为 null 了,应该是业务层面代码就能找到问题,SDK 内部都做判断了。

0

liruxiao 88天前

已添加的中间件:

//使用 企业微信 MessageHandler 中间件                                                 // -- DPBMARK Work
           app.UseMessageHandlerForWork("/WorkAsync", WorkCustomMessageHandler.GenerateMessageHandler,
                                        o => o.AccountSettingFunc = c => senparcWeixinSetting.Value);//最简化的方式
                                                                                                     // DPBMARK_END

0

liruxiao 88天前

异常信息:  object reference not set to an instance of an object


热门话题 更多 >>

TenPayV3.Unifiedorder 调用统一订单接口 签名错误

sy87468118 22 个回复 • 查看 1558 次 • 26天前

上传永久其他类型素材

俊熙OL 19 个回复 • 查看 709 次 • 160天前

企业微信审批回调

fjl-net 17 个回复 • 查看 317 次 • 82天前

core2.2版本兼容问题

haost 9 个回复 • 查看 533 次 • 180天前

messageHandler.ExecuteAsync 执行异常

liruxiao 6 个回复 • 查看 291 次 • 88天前

senparc.weixin.work.middleware Nuget包兼容性问题

liruxiao 6 个回复 • 查看 132 次 • 26天前

企业微信审批回调

fjl-net 5 个回复 • 查看 377 次 • 82天前

OnEvent_EnterRequestAsync是什么事件

huphz 5 个回复 • 查看 52 次 • 8天前

Net5.0如何全局注册

李先生99 5 个回复 • 查看 357 次 • 126天前

企业支付到零钱证书出错

未央---- 5 个回复 • 查看 472 次 • 180天前

微信支付-商家券

Hilary 5 个回复 • 查看 490 次 • 144天前

企业微信审批回调

fjl-net 4 个回复 • 查看 398 次 • 97天前

MaxRecordCount的作用

LXL.WxDeveloper 4 个回复 • 查看 356 次 • 137天前

CreateFromRequestMessage过程发生异常

tech5118 4 个回复 • 查看 412 次 • 176天前

UniformSend 小程序统一消息发布bug

hanhedy 4 个回复 • 查看 636 次 • 116天前

TenPayV3 支付出现签名错误,会是什么问题造成的。

riig 4 个回复 • 查看 4642 次 • 126天前

多租户开启后报505错

sunweijun 4 个回复 • 查看 33 次 • 20小时前

个人信息
QQ群
  • 1群:300313885 (2000人群 已满)
  • 2群:293958349 (1000人群 已满)
  • 3群(公众号):342319110 Senparc.Weixin.MPSDK 3群
  • 4群:372212092 (500人群 已满)
  • 5群:377815480 (1000人群 已满)
  • 6群:425898825 (1000人群 已满)
  • 7群:482942254 (500人群 已满)
  • 8群:106230270 (500人群 已满)
  • 9群:539061281 (500人群 已满)
  • 10群(分布式缓存):246860933 Senparc.Weixin.Cache SDK 10群
  • 11群:553198593 (500人群 已满)
  • 12群(小程序):108830388 (2000人群 已满)
  • 13群(开放平台):183424136 (500人群 已满)
  • 14群(视频学员):588231256 Senparc.Weixin SDK 14群
  • 15群(综合):289181996 (500人群 已满)
  • 16群(开放平台):860626938 (500人群 已满)
  • 17群(小程序):770615466 [17群 开放平台]SenparcSDK
  • NCF 技术交流群:147054579 SCF 开发交流群
微信开发宝典:《微信开发深度解析》

由 Senparc.Weixin SDK 作者耗时两年完成的微信开发图书《微信开发深度解析:公众号、小程序高效开发秘籍》已经出版!

历经2年精心雕琢,难得的“理论 + 实战案例 + 趟坑经验”总结,
从需求分析、策划,到账号申请、验证,再到全面的 API 及开发工具,
覆盖所有开发微信公众号(含订阅号、服务号和小程序)所需关键技能!

视频教程:《微信公众号+小程序快速开发》

由盛派课堂(盛派旗下独立教育品牌)制作,《微信开发深度解析》作者苏震巍先生主讲的《微信公众号+小程序快速开发》视频课程开课啦!

课程采用“理论+实战”的教学形式,结合部分《微信开发深度解析》内容,独立于书本,包含了更多的操作演示和案例展示,帮助大家从多个维度学习微信开发以及.NET开发过程中的诸多技巧。
课程包含两大部分:
1. 微信开发基础技能
2. 公众号及小程序案例实战
共计60课时,配有番外篇,目前视频已在网易云课堂上线。