当前位置: 首页 > ai >正文

Webapi发布后IIS超时(.net8.0)

文章目录

  • 前言
  • 一、报错信息
  • 二、日志分析
  • 三、分析
  • 四、最终解决办法:

前言

最近实现服务器数据导出:
.net8.0的webapi 获取到post请求,查询数据后dbReader导出到workbook. 并保存Excel到远程的文件服务器。
问题:本地调试无问题,发布到远程服务器后数据量一大,前端就会Response 502

一、报错信息

System.Net.WebException
HResult=0x80131509
Message=远程服务器返回错误: (502) 错误的网关。

二、日志分析

在 while (reader.Read())中记录 输出日志:

08-15 16:05 api  请求   运行008-15 16:05 _SG1  请求   运行008-15 16:05 sqlHelper   do workbook占存为:77.20 MB  运行008-15 16:05 测试开始  运行508-15 16:05 测试开始1  运行508-15 16:05 测试开始2  运行508-15 16:05 测试开始_1万行占存为:477.07 MB  运行708-15 16:05 测试开始_10万行占存为:197.26 MB  运行1808-15 16:05 测试开始_20万行占存为:181.61 MB  运行3408-15 16:05 测试开始_30万行占存为:182.88 MB  运行4908-15 16:06 测试开始_40万行占存为:182.12 MB  运行6908-15 16:06 测试开始_50万行占存为:178.66 MB  运行8208-15 16:06 测试开始_60万行占存为:182.79 MB  运行9708-15 16:06 测试开始_70万行占存为:178.45 MB  运行116

情况:在120秒左右,前端返回502,后端并未中断。

三、分析

问题是post请求,在后端还在执行的时候,中途释放掉了。情况只有两种:
1、Request超时 2、内存溢出。

然后使用了很多办法:

1、request:request.Timeout = 600000;
2、 webapi:[HttpPost][RequestTimeout(1000000)]//1000Spublic async Task<IActionResult> GetSG1(SG1Req obj)
3、IIS各种设置

都没什么效果

四、最终解决办法:

修改web.config添加requestTimeout=“00:20:00” 到 aspNetCore
(requestTimeout="60000"会报错 )

<?xml version="1.0" encoding="utf-8"?>
<configuration><location path="." inheritInChildApplications="false"><system.webServer><handlers><add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /></handlers><aspNetCore processPath=".\WebApi.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="outofprocess" requestTimeout="00:20:00"  /></system.webServer></location></configuration>

问题得到解决,记录下来。

http://www.xdnf.cn/news/17817.html

相关文章:

  • 什么是可信空间的全域节点、区域节点、业务节点?
  • Claude Opus 4.1深度解析:抢先GPT5发布,AI编程之王主动出击?
  • (Arxiv-2025)Stand-In:一种轻量化、即插即用的身份控制方法用于视频生成
  • 微软自曝Win 11严重漏洞:可导致全盘数据丢失
  • 简单使用 TypeScript 或 JavaScript 创建并发布 npm 插件
  • 搭建前端开发环境 安装nvm nodejs pnpm 配置环境变量
  • 大华相机RTSP无法正常拉流问题分析与解决
  • Web 安全之 Cookie Bomb 攻击详解
  • Prometheus 监控 Kubernetes Cluster 最新极简教程
  • USENIX Security ‘24 Fall Accepted Papers (1)
  • 使用 Let’s Encrypt 免费申请泛域名 SSL 证书,并实现自动续期
  • 【微服务】.NET8对接ElasticSearch
  • [Linux]双网卡 CentOS 系统中指定网络请求走特定网卡的配置方法
  • ifcfg-ens33 配置 BOOTPROTO 单网卡实现静态和dhcp 双IP
  • 《Python列表和元组:从入门到花式操作指南》
  • 做亚马逊广告,有哪些提高效率的工具
  • sqli-labs通关笔记-第49关 GET字符型order by盲注(单引号闭合 手工注入+脚本注入两种方法)
  • CAS学习6:cas免登录时 iframe 跨域和TGC丢失问题处理
  • 从0开始跟小甲鱼C语言视频使用linux一步步学习C语言(持续更新)8.15
  • 面试经典150题[004]:删除有序数组中的重复项 II(LeetCode 80)
  • 《R for Data Science (2e)》免费中文翻译 (第4章) --- Workflow: code style
  • 网络安全蓝队常用工具全景与实战指南
  • 【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
  • 【系统安装】虚拟机中安装win10IOT企业版系统记录
  • 【软考中级网络工程师】知识点之入侵检测深度剖析
  • Elasticsearch:如何使用 Qwen3 来做向量搜索
  • STM32学习笔记11-通信协议-串口基本发送与接收
  • uni-app 小程序跳转小程序
  • 初识c语言————缓冲区字符滞留
  • Cookie、Session、Token详解