加入收藏 | 设为首页 | 会员中心 | 我要投稿 威海站长网 (https://www.0631zz.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > Asp教程 > 正文

ASP 变量 临时文件夹引发的Asp.Net Core框架异常

发布时间:2022-10-16 19:01:33 所属栏目:Asp教程 来源:互联网
导读: 前言
最近,在服务器上发现Asp.Net Core经常提示如下异常,访问不了临时文件夹:
可实际上,我们的代码并没有读写这个临时文件夹。
看错误堆栈,应该是框架本身抛出的异常。
解决方案
1.组

前言

最近,在服务器上发现Asp.Net Core经常提示如下异常,访问不了临时文件夹:

可实际上,我们的代码并没有读写这个临时文件夹。

看错误堆栈,应该是框架本身抛出的异常。

解决方案

1.组策略

临时文件夹是肯定存在的。问题的原因主要是访问了这个子目录。

在网上查找原因,说是远程桌面会为每个会话创建独立的临时文件夹,应该是对应的会话ID。

于是,尝试使用组策略解决,不创建独立的临时文件夹:

结果发现,组策略并未起作用,子目录还是创建了,而且该目录还会不定时被删除,即使设置了在退出时不删除临时文件夹也没有用。

2.环境变量

没有办法,只有根据错误堆栈的提示,直接看AspNetCoreTempDirectory源码[1]ASP 变量,看看能否找到问题原因。

TempDirectory属性的实现代码如下:

嗯,有读取环境变量ASPNETCORE_TEMP,那就好办了!

于是创建了环境变量,目前为止,暂未出现问题:

js 获取asp变量_ASP 变量_asp 变量类型

结论

后来查到,造成问题的原因,是HttpRequestRewindExtensions.EnableBuffering 方法[2]提供的特性:

确保 request Body 可以多次读取。通常会将请求正文缓冲到内存中;将大于30000字节的请求写入磁盘。

但是,我们并没有手工调用过此方法,而且仅在Server 2019上才出现问题。

如果你碰到同样异常,可照此处理。

参考资料[1]

AspNetCoreTempDirectory源码:

[2]

HttpRequestRewindExtensions.EnableBuffering 方法:

(编辑:威海站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!