[ASP.NET]大文件无法上传排查经验分享
最近我们标桥下载模块,在经过正常更新后,发现软件包无法上传。
临时解决方案
因为问题结点在于文件无法上传到服务器,所以我们临时手动将文件丢到服务器,通过测试服务器将数据造出来,然后再更新到正式数据库,最后通过接口将文件同步到镜像站,保证平台上的软件能被正常更新使用。
首先排查代码问题
本次更新没有涉及到上传代码改造,与svn历史版本对比后也没有发现改动。并在测试服务器上可以正常上传。Ps:我们平台现在都是jenkins+docker部署,正式系统与测试系统环境与配置都是一致的。为确保正式与测试配置文件一致,我又核对了一遍。
其次可能是网速问题
之前出现过因网速问题导致无法上传的。因正式上传文件比较大,大概有100M样子,我又拿了个几兆大小的文件上传,可以上传上去。与基础设施联系后,了解到因cdn回源,公司带宽基本都被占用,网速极其的卡,并且了解到上传人员上传时,进度的确十分的慢。还有一个问题是基础设施的同事查到服务存放文件的磁盘满了。Ps:当时内心十分喜悦,问题找到了。哈哈哈哈哈哈哈哈哈哈!当即通知上传人员,现在因网速和磁盘问题导致无法上传,等这两个问题处理好再上传。
第二天,网络带宽下来了,磁盘问题解决了,通知上传人员上传,可他们告诉我还是不能上传,当时就心碎了。心里默默地问自己,还有什么问题呢,查看日志又没有报错,但就是不能上传。
http切成https问题
求助我部门领导庞经理后,他给我提出几个可能的问题:
1. 我们平台最近在进行将http改成https的改造,是不是可能因为这个而导致的。
2. 我们平台将七牛cnd加速改成了腾讯云cdn加速,是不是可能因为cdn配置导致的。
根据我们经理提出的排查方向 ,我们首先切成内网登录平台,内网如果可以上传,说明tomcat服务器没有问题,问题应该出在外网切换。通过测试,内网上传没有问题,tomcat问题排除。后咨询基础设施部问https上传是否有问题,答复是没有问题。
CDN加速问题
那最后问题只有可能在腾讯云的cdn加速上。打电话给腾讯云客服,得到的答案是cdn加速会对大文件上传做限制,因为我们配置的接口访问地址是主站域名,所以将主站cdn加速关闭,就可以了。
总结:遇到无头问题,大胆假设,小心验证,总能找到问题。与诸君共勉!!
下一篇: C#常量和字段以及各种方法的语法总结