【Azure 应用服务】记一次 App Service 部分请求一直返回 401 "No Authority" 的情况
2021-09-20 18:30
671 查看
问题描述
发现部署在App Service上的 WCF 应用对于所请求的接口出现部分返回 401 - No Authority 消息,10次中有一次这样的概率。比较疑惑的问题是,应用没有更新,所以怀疑是App Service服务本身的问题?
从本地的异常,错误消息,都没有明确的发现,也曾怀疑过网络导致的怪异问题,但是通过抓包并没有发现异常。以上判断都无法定位问题。
本地异常:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) at BC.TODO.Repository.Services.TODOHomeService.ITODOHomeService.AvailabilityCheckGetTasks(DateTime date, Guid guid) at BC.TODO.Repository.Services.TODOHomeService.TODOHomeServiceClient.AvailabilityCheckGetTasks(DateTime date, Guid guid) in C:\work\BC.TODO.Repository.Services\Service References\TODOHomeService\Reference.cs:line 28076 at BC.TODO.Repository.Services.AvailabilityCheck.TODOAvailabilityCheckRepository.GetTasks(DateTime date, Guid guid) in C:\work\BC.TODO.Repository.Services\AvailabilityCheck\TODOAvailabilityCheckRepository.cs:line 45 at BC.TODO.Domain.AvailabilityCheck.TODOAvailabilityCheckDomain.GetTasks(DateTime date, Guid guid) in C:\work\BC.TODO.Domain\AvailabilityCheck\TODOAvailabilityCheckDomain.cs:line 72 at BC.TODO.Controllers.Data.TODO.AvailabilityCheckController.TaskList(SerachTaskModel model) in C:\work\BC.TODO.Controllers.Data\AvailabilityCheck\AvailabilityCheckController.cs:line 89
问题根源
最后,调查App Service的请求401的分布情况,倒推发现App Servcie中发布了两个部署槽(Slot), 其中一个是 staging环境,而这个环境中的认证与Product是不一样的,所以用Product的请求所携带的Authorization来访问Staging,就会出现401 No Authority的问题。
进一步检查App Service 槽的部署情况,果然,发现两个槽之间的流量分布为90%, 10%。进一步的解释了从客户端调用WCF服务时候出现的10次之间一次出现401的问题。 通过修改部署槽之间的流量,问题完美解决。
PS: 这真是一次把”简单问题“复杂化的后果。
[完]
相关文章推荐
- 【Azure 应用服务】App Service 通过配置web.config来添加请求返回的响应头(Response Header)
- 【Azure 应用服务】App Service For Linux 中安装paping, 用于验证从App Service向外请求的网络连通性
- 关于Action中ValidateXXX方法校验一次失败后\导致以后一直返回input视图的情况
- 【Azure 应用服务】[App Service For Linux(Function) ] Python ModuleNotFoundError: No module named 'MySQLdb'
- Android请求网络数据在部分手机上出现没有数据返回的情况
- 【Azure 应用服务】App Service多个部署槽(Slot)之间,设置Traffic百分比后,如何来判断请求是由那一个槽(Slot)来进行处理呢?
- 【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
- PHP 请求kong返回no API found with those values
- Android下网络请求数据,返回数据显示不全,解析json no value for xxx
- struts处理.do后缀请求报Struts2中关于"There is no Action mapped for namespace / and action name"的总结
- Python模拟HTTPS请求返回HTTP 401 unauthorized错误
- 【应用服务 App Service】在Azure Web App的部署文件中,是否可以限制某些文件无法被访问?(如json)
- RTSP协议源码,分服务与请求两部分。支持AMR,MP4Alatm,MP4A,MP4V,H263,H264。
- WinForm企业应用框架设计【一】界限划分与动态创建WCF服务(no svc!no serviceActivations!)
- 【Azure 应用服务】Azure App Service (Windows) 使用Flask框架部署Python应用,如何在代码中访问静态文件呢?如何设置文件路径?是相对路径还是绝对路径呢?
- 当浏览器从 web 服务器请求服务时,可能会发生错误。从而有可能会返回下面的一系列状态 错误消息汇总
- 【Azure 应用服务】Azure Function App 执行PowerShell指令[Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt]错误
- 【Azure 应用服务】App Service服务无法启动,打开Kudu站点,App Service Editor 页面均抛出:The service is unavailable
- 【Azure 应用服务】FTP 部署 Vue 生成的静态文件至 Linux App Service 后,访问App Service URL依旧显示Azure默认页面问题
- 记一次PHP开发过程中,json_decode返回null的解决情况