我在Windows Server 2012上的企业环境中部署并使用了自托管的asp.net核心应用程序。
我正在寻找一种自动化更新过程的方法,我目前正在通过bat文件执行此操作,但在无法删除文件的情况下继续获取Windows文件锁定错误。我在bat文件中遵循的过程如下:
终止网络应用的dotnet核心流程
清除目录(睡眠几秒钟后)
通过
重新启动网络应用
我收到2中的错误,我试图清除仍然有文件锁的现有目录,即使我已经杀死了进程 - "无法删除输出文件 - 访问被拒绝"。
我的问题是如何升级自包含的asp.net核心Web应用程序并避免文件锁定?如果网站离线几秒钟,则不是问题。
由于
答案 0 :(得分:1)
我可以想到几个原因,删除目录会导致拒绝访问错误。
尝试运行powershell等例如(在命令行中):
powershell -Command "Wait-Process -Name MyProcess"`
(警告您可能会遇到ExecutionPolicy问题)
使用msdeploy,您可以远程执行命令并部署您的应用程序。
您可以使用前后脚本(停止和启动应用程序)和msdeploy it self将为您同步文件夹/目录。