微信公众号提示 :该公众号提供的服务出现故障,请稍后再试

最近在做公众号开发,其服务配置为自己的服务器,有一段时间一直出现该公众号提供的服务出现故障,请稍后再试,这样的提示,相信有很多小伙伴遇到过这样的问题!

一、 具体问题描述

事件响应或消息自动回复时,功能可以正常实现,当功能完成之后就会出现,该公众号提供的服务出现故障,请稍后再试,也就是说功能完全实现,就是看见这个提示让人很操蛋!

二、后台服务使用的框架

语言:C#
框架:Senparc.weixin

三、解决问题经过

1. 检查微信服务器开发配置

验证通过,没有问题

2.猜想可能是服务器没有响应微信服务器的某个请求

我去自己的服务器打开了请求失败跟踪,具体方法如下:

  • 1)服务器IIS配置:
    第一步:开启失败请求跟踪规则

    image

    按照上面的步骤进行配置,注意:目录是存放错误报告的;
    第二步:添加规则,如下图所示
    image

    完成如上的步骤,就可以看到一条规则,如下图所示:
    image

  • 2)查看错误XML文件:
    完成上面的工作之后,就可以看到跟踪文件,如图所示:

    image

    打开文件,就可以看到请求失败的具体信息:
    image

    然而发现并没有失败

3.猜想是我响应时返回的内容有问题

使用的返回方式如下代码所示:

public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)
 {
      var responseMessage = base.CreateResponseMessage();
   
      var resultContent = requestMessage.EventKey.Split('#');
         CustomApi.SendText(_appId, requestMessage.FromUserName,
             $"袋鼠圈专注于学龄前儿童运动与健康管理服务。 \n\n 安防课后延时班正在火热报名中!!!10节课学会安防基础知识和基本技能,让孩子掌握自我保护技巧,在遇险后能第一时间做出求生反应。\n\n点击这里立即报名 ");
      
      return responseMessage;
  }

分析代码:发现我直接使用了SendText方法向微信发送了一条消息,但是返回的responseMessage中的Contentnull,所以微信服务器报这条错误,修改如下:

public override IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage)
 {
      var responseMessage = base.CreateResponseMessage();
      responseMessage.Content =  $"袋鼠圈专注于学龄前儿童运动与健康管理服务。 \n\n 安防课后延时班正在火热报名中!!!10节课学会安防基础知识和基本技能,让孩子掌握自我保护技巧,在遇险后能第一时间做出求生反应。\n\n点击这里立即报名 ";
      
      return responseMessage;
  }

到此,解决了微信公众号的那个让人蛋疼的服务。

四、总结

出现此问题,如果说你的配置没有问题(经过第一步),那么就是自己的服务器错误,如果说你的服务器没有发现错误,那么就是你在响应返回是的内容或方式不正确,希望你有所帮助

你可能感兴趣的:(微信公众号提示 :该公众号提供的服务出现故障,请稍后再试)