ASP.NET Core 8.0文件上传功能在Windows正常但Ubuntu 22.04环境下报500错误的解决求助
ASP.NET Core 8.0文件上传功能在Windows正常但Ubuntu 22.04环境下报500错误的解决求助
大家好,我最近碰到了一个头疼的问题,想请教下各位:
我平时用Windows系统搭配Visual Studio开发Web应用,生产环境用的是Ubuntu Server 22.04(LTS),两边都跑的是.NET 8.0 runtime。应用在Ubuntu上整体运行正常,但用户文件上传的部分会触发500错误。因为我是在Windows上开发的,没法直接在Ubuntu环境下调试,折腾了好久才定位到出错的代码段。
下面是我用于文件上传的代码:
[HttpPost] [Authorize] public async Task<IActionResult> UploadNewPmFile(IList<IFormFile> uploadedFile) { // 省略其他代码... var fileName = Path.GetFileName(file.FileName); var fileExtension = Path.GetExtension(fileName); var newFileName = string.Concat(userId, fileExtension); var path = Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\Data\Temp", newFileName); using (var stream = new FileStream(path, FileMode.Create)) //***Error is here*** { await file.CopyToAsync(stream); } // 省略其他代码... }
如你所见,就是这段using代码块在Ubuntu上触发了500错误,但在Windows上完全正常。
我已经在站内搜了不少相关问题,但没找到能解决这个情况的方案,想问问大家有没有遇到过类似问题,该怎么修复?
更新补充:
需要说明的是,应用发布后在Windows上运行完全没问题,只有在Ubuntu环境下,文件上传的部分会出问题。
备注:内容来源于stack exchange,提问作者Alex Wright
相关产品推荐
相关产品推荐

