首页 > 其他分享 >记录一次删除文件失败的问题

记录一次删除文件失败的问题

时间:2024-03-31 19:22:16浏览次数:16  
标签:DynamicProxy 删除 记录 proceedInfo Volo Abp 失败 invocation Castle

一段很简单的删除文件的C#代码,在IIS中有部分文件会出现删除失败的情况,错误提示如下:
2024-03-31 17:40:21.981 +08:00 [ERR] Access to the path 'C:\projects\ows.services.dignite.com\wwwroot\tenants\b384a371-835f-e19b-4d4d-3a1104e4c4a6\files\1734aa3d61314c1b9735d59b516db7e4' is denied. System.UnauthorizedAccessException: Access to the path 'C:\projects\ows.services.dignite.com\wwwroot\tenants\b384a371-835f-e19b-4d4d-3a1104e4c4a6\files\1734aa3d61314c1b9735d59b516db7e4' is denied. at System.IO.FileSystem.DeleteFile(String fullPath) at Volo.Abp.IO.FileHelper.DeleteIfExists(String filePath) at Volo.Abp.BlobStoring.FileSystem.FileSystemBlobProvider.DeleteAsync(BlobProviderDeleteArgs args) at Volo.Abp.BlobStoring.BlobContainer.DeleteAsync(String name, CancellationToken cancellationToken) at Dignite.Abp.Files.FileManager2.DeleteAsync(TFile file, CancellationToken cancellationToken)
at Dignite.FileExplorer.Files.FileDescriptorAppService.DeleteAsync(Guid id)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
at Volo.Abp.Authorization.AuthorizationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
at Volo.Abp.GlobalFeatures.GlobalFeatureInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
at Volo.Abp.Auditing.AuditingInterceptor.ProceedByLoggingAsync(IAbpMethodInvocation invocation, AbpAuditingOptions options, IAuditingHelper auditingHelper, IAuditLogScope auditLogScope)
at Volo.Abp.Auditing.AuditingInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
at Volo.Abp.Validation.ValidationInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed)
at Castle.DynamicProxy.AsyncInterceptorBase.ProceedAsynchronous(IInvocation invocation, IInvocationProceedInfo proceedInfo)
at Volo.Abp.Castle.DynamicProxy.CastleAbpMethodInvocationAdapter.ProceedAsync()
at Volo.Abp.Uow.UnitOfWorkInterceptor.InterceptAsync(IAbpMethodInvocation invocation)
at Volo.Abp.Castle.DynamicProxy.CastleAsyncAbpInterceptorAdapter1.InterceptAsync(IInvocation invocation, IInvocationProceedInfo proceedInfo, Func3 proceed)
at Dignite.FileExplorer.Files.FileDescriptorController.DeleteAsync(Guid id)
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.TaskResultExecutor.Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask1 actionResultValueTask) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeInnerFilterAsync>g__Awaited|13_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted) at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextExceptionFilterAsync>g__Awaited|26_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
并不是每个文件都出现删除失败,所以从代码上没有找到问题.
刚刚尝试在IIS中将站点应用池中的高级选项:标识改为LocalSystem,每个文件都能成功删除.

至少是什么原因,也没有深究.有了解了很留言指教.

标签:DynamicProxy,删除,记录,proceedInfo,Volo,Abp,失败,invocation,Castle
From: https://www.cnblogs.com/webdu/p/18107124

相关文章

  • Blazor学习记录_8.预呈现__
    22.NET8中的预呈现预呈现是在服务器上初始呈现页面内容的过程(无需为呈现的控件启用事件处理程序)。服务器会根据初始请求尽快输出页面的HTMLUI,这会让用户感觉应用提高了响应速度。预呈现还可以通过呈现搜索引擎用于计算网页排名的初始HTTP响应的内容,来改进搜索引擎优化(SEO......
  • 【VMware vSAN】配置vSAN ESA超融合集群及如何正确删除vSAN集群。
    vSANExpressStorageArchitecture(ESA)是vSAN中一种可选的替代架构,旨在以全新的效率、可扩展性和性能来处理和存储数据。此架构经过优化,可充分利用最新硬件的全部功能。它在vSAN8中发布,并在vSAN8U1和U2中进行了增强,可以在创建群集时选择它。vSAN中的ESA是所有早期版本的......
  • pycharm卸载失败(已解决),控制面板以及自带的Uninstall.exe均无法卸载
    Uninstallhasn’tdetectedfolderofPyCharminstallation.Probablyuninstall.exewasmovedfromtheinstallationfolder.解决方法1.新建一个文本文档,2.重命名文本:IdeaWin64.dll3.运行卸载程序,成功弹出卸载窗口4.卸载成功......
  • Tomcat启动失败,窗口一闪而过问题解决
    在启动Tomcat时窗口一闪而过,解决方法:在Tomcat安装目录\bin下启动cmd,或在C盘启动后跳转到Tomcat安装目录\bin,输入startup.bat(一定要先做这步,确保具体问题,再根据具体问题百度,不然又是配置JRE,又是配置Tomcat环境变量,最后做了无用功),如果显示如下:先确保java环境变量没问题,我的java......
  • frida--hook记录
    from__future__importprint_functionfromfrida.coreimportSessionimportfridaimporttimedevice=frida.get_usb_device()#通过USB连接设备#frida.get_device_manager().add_remote_device('192.168.50.96:6666')pid=device.spawn(["com.android.......
  • LeetCode刷题记录——day9
    https://leetcode.cn/problems/game-of-life/?envType=study-plan-v2&envId=2024-spring-sprint-100先创建一个数组,让它比原数组大一圈,然后将其全设为0,在原数组中每有一个1出现,就将其对应位置的新数组的周围全部加一,最后新数组中对应位置的数字就是其周围有多少个活细胞classSo......
  • GIS用户的Deepin V23系统使用记录
    一、系统安装:截止到2024年3月31日,Deepin最新版本为Deepinv23Beta3。在各种软件源下载系统ISO安装,个人是在清华源。1.准备一个U盘或者移动硬盘,安装好Ventoy,把Deepin的ISO放进去,这样,就制作好了系统启动盘。2.推荐为Deepin系统单独准备一块硬盘,从Ventoy启动之后,选择Deepinv23的......
  • QTP/UFT 学习笔记:函数方法等记录
    ​原记录在CSDN上的,后来被自动转VIP了,我搬过来免费看看,小东西没必要VIP,主打一个知识无价,朴实无华。1、Back效果等同于浏览器窗口上的【回退】按钮,使浏览器返回上一个页面​​![](https://img2024.cnblogs.com/blog/1202750/202403/1202750-20240331130946866-2132113900.png)......
  • DIjkstra进阶模板 路径记录 按权重(结点数最小等)记录
    structDIJ{usingi64=longlong;usingPII=pair<i64,i64>;vector<i64>dis,path,node;vector<vector<array<int,3>>>G;intn;DIJ(){}DIJ(intn):n(n){node.resize(n+1,1);......
  • 在Linux中,如何创建、删除和修改文件?
    在Linux系统中,文件管理是一项基本且重要的操作。以下是关于如何在Linux中创建、删除和修改文件的详细步骤。1.创建文件使用touch命令:touch命令是创建空文件最常用的方法。打开终端,使用以下命令:touchfilename.txt这将创建一个名为filename.txt的空文件。使用echo命令:......