如何解决.NET应用启动时的Lock timeout异常问题
.NET ClickOnce应用启动失败:LockTimeout异常,无法卸载重装
问题描述
使用.NET相关技术已有数年,首次遇到应用启动失败问题,触发System.Deployment.Application.DeploymentException (LockTimeout)异常。尝试通过启动器卸载重装应用,但启动器无法打开。该应用为基础工具类应用,支持展示Nas、Drake等艺人的YouTube播放列表、维基百科简介、谷歌图片,还内置国际象棋、纸牌等小游戏,此前运行完全正常。
错误日志
PLATFORM VERSION INFO Windows : 10.0.19044.0 (Win32NT) Common Language Runtime : 4.0.30319.42000 System.Deployment.dll : 4.8.4270.0 built by: NET48REL1LAST_C clr.dll : 4.8.4515.0 built by: NET48REL1LAST_C dfdll.dll : 4.8.4270.0 built by: NET48REL1LAST_C SOURCES Deployment url : file:///C:/Users/derri/Desktop/NAS%20ETHER.appref-ms%7C ERROR SUMMARY Below is a summary of the errors, details of these errors are listed later in the log. * Activation of C:\Users\derri\Desktop\NAS ETHER.appref-ms| resulted in exception. Following failure messages were detected: + Lock timeout exception. COMPONENT STORE TRANSACTION FAILURE SUMMARY No transaction error was detected. WARNINGS There were no warnings during this operation. OPERATION PROGRESS STATUS * [9/14/2022 7:25:14 PM] : Activation of C:\Users\derri\Desktop\NAS ETHER.appref-ms| has started. ERROR DETAILS Following errors were detected during this operation. * [9/14/2022 7:27:14 PM] System.Deployment.Application.DeploymentException (LockTimeout) - Lock timeout exception. - Source: System.Deployment - Stack trace: at System.Deployment.Application.LockedFile.AcquireLock(String path, TimeSpan timeout, Boolean writer) at System.Deployment.Application.SubscriptionStore..ctor(String deployPath, String tempPath, ComponentStoreType storeType) at System.Deployment.Application.SubscriptionStore.get_CurrentUser() at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl, Uri& deploymentUri) at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Deployment.Application.ApplicationActivator.PerformDeploymentActivationWithRetry(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl) at System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state) COMPONENT STORE TRANSACTION DETAILS No transaction information is available.
解决步骤
终止锁定进程
打开任务管理器,找到并结束dfsvc.exe(ClickOnce部署服务进程),以及任何与该应用相关的残留进程;若无法区分,可结束关联Windows Installer/ClickOnce的svchost.exe进程。清理ClickOnce缓存
- 以管理员身份打开命令提示符,执行命令:
rundll32 dfshim CleanOnlineAppCache - 或手动删除缓存目录:导航到
C:\Users\derri\AppData\Local\Apps\2.0,删除该目录下所有内容(操作前可备份重要数据)。
- 以管理员身份打开命令提示符,执行命令:
修复.NET Framework
打开控制面板→程序和功能,找到Microsoft .NET Framework 4.8,点击「更改」→选择「修复」,完成后重启系统。手动卸载应用
- 打开控制面板→程序和功能,找到「NAS ETHER」应用,直接点击卸载。
- 若控制面板中找不到该应用,打开管理员权限的PowerShell执行:
Get-WmiObject -Class Win32_Product | Where-Object {$_.Name -like "*NAS ETHER*"} | ForEach-Object {$_.Uninstall()}
重新安装应用
使用原安装包或部署链接重新安装应用,测试启动是否正常。
内容的提问来源于stack exchange,提问作者Derrick W. Jackson
相关产品推荐
相关产品推荐

