System.UnauthorizedAccessException: Access to the path ‘C:\Windows\TEMP\ASPNETCORE_4d3890a6-5ebc-4b2

 移动端使用blaozr;上传文件到后端出现的错误。

事件管理器信息:

Category: Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware
EventId: 1
SpanId: a9e0b1fbb07091e3
TraceId: 9149f03309e437b22613eb4db1d35aa1
ParentId: 0000000000000000
RequestId: 400000b9-0001-c800-b63f-84710c7967bb
RequestPath: /upload/multiple/-788015685

An unhandled exception has occurred while executing the request.

Exception: 
System.UnauthorizedAccessException: Access to the path 'C:\Windows\TEMP\ASPNETCORE_4d3890a6-5ebc-4b23-89c6-a1955595cd52.tmp' is denied.
   at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 

 这是一个bug,出现的实际是:

我是用Blazor编写了一个“Tmp"网站,可用于分享代码,文件等。但是,一个异常很诡异,我在电脑端不会发生,就是上传一个图片格式的文件到asp.net core的后端。无论改不改文件后缀甚至文件内容以破坏结构,都会发生。

我找到了事件管理器查看了错误事件,并且进行查看,信息如上。

我去问了chatgpt api,给我的回复是:

对于ASP.NET Core Blazor应用程序部署在IIS上,手机上传文件时出现`System.UnauthorizedAccessException`异常,指示访问路径'C:\Windows\TEMP\ASPNETCORE_4d3890a6-5ebc-4b23-89c6-a1955595cd52.tmp'被拒绝的问题。

这个问题通常是由于应用程序池的身份在IIS中没有足够的权限来访问临时文件夹造成的。应用程序池的身份是IIS用来运行ASP.NET Core应用程序的用户身份。

你可以尝试以下方法来解决这个问题:

1. 确保应用程序池的身份具有足够的权限:在IIS管理器中,找到你的应用程序池,右键点击并选择"高级设置"。在"进程模型"部分,确保"标识"设置为一个具有足够权限的用户账户,例如"NetworkService"或自定义的账户。如果使用自定义账户,请确保该账户具有足够的权限来访问临时文件夹。

2. 更新临时文件夹的权限:在Windows操作系统上,右键点击临时文件夹(例如'C:\Windows\TEMP'),选择"属性",然后进入"安全"选项卡。确保应用程序池的身份具有读写权限。

3. 更改临时文件夹的位置:如果你无法更改临时文件夹的权限,可以尝试更改ASP.NET Core应用程序使用的临时文件夹位置。在`Startup.cs`文件的`ConfigureServices`方法中,使用`services.Configure<TempFileOptions>(options => options.TempFolderPath = "新的临时文件夹路径")`来指定新的临时文件夹路径。

请注意,如果你更改了临时文件夹的位置,请确保新的临时文件夹路径具有足够的权限供应用程序池的身份访问和操作。

这些方法应该能够解决你遇到的问题。如果问题仍然存在,请确保你的手机浏览器和服务器之间的通信正常,并且在服务器端正确处理文件上传的逻辑。

如果还有其他问题,请随时提问。

 我按照相应的操作,最后完成了这个bug的修复。

我使用的是前两步,具体是一步就行还是必须两步就不另行测试了。

1 => 应用程序池 => 高级设置

进程模型=>标识

修改为LocalSystem

 

 2 => 文件资源管理器=>C:\Windows=>

Temp=>属性=> 安全=> All application packages

 编辑=>全部允许

 然后,工作良好。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

枫叶kx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值