asp.net - 部署PrecompiledApp问题

标签 asp.net web-deployment pre-compilation

自动生成的PrecompiledApp.config使我有些头疼。
我将旧网站的部署自动化,并且在部署时有50%的时间自动出现此错误:

System.IO.IOException: The process cannot access the file '\\web.prod.local\c$\Sites\Website\PrecompiledApp.config' because it is being used by another process.

内容:
<precompiledApp version="2" updatable="true"/>

据我所知,网站使用一些卷影复制功能来允许更新网站“运行时”,例如app.config等。
但是,这1个文件似乎是个异常(exception)。

除了在部署过程中停止网站外,任何人都可以建议解决方法吗?

亲切的问候

最佳答案

从错误消息中的路径判断,我看到您正在尝试在部署时通过网络共享复制文件。 这是一种不好的做法,直接通过网络共享或FTP等更新文件。这实际上是原因。网络部署速度很慢,并且某些文件仍在更新/上传中-服务器上的ASP.NET已经在尝试回收应用程序,将文件复制到“临时ASP.NET文件夹”等,等等。

部署最佳实践:

将您的预编译站点压缩为ZIP,上传,然后在服务器上远程运行UNZIP

这是远程运行UNZIP的方法:

plink -ssh -l USERNAME -pw PASSWORD web.prod.local c:\Sites\Website\unzip -q -o c:\Sites\Website\site.zip -d c:\Sites\Website\

“plink”是Windows上的免费SSH工具(命令行),您需要在开发计算机上使用它

“web.prod.local”是您的服务器地址。

“c:\Sites\Website\”是您的网站在服务器上的路径

您需要在服务器上安装SSH才能远程运行命令,最简单的选择就是也安装免费工具:“freesshd”(使用谷歌浏览器)

将“unzip.exe”也拖放到服务器上,您会看到它在那里被调用。最简单的方法是将其直接放入c:\Sites\Website\

PS。这只是一个例子,您可以提出自己的解决方案

关于asp.net - 部署PrecompiledApp问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19398090/

相关文章:

javascript - 如何使用 JavaScript 获取元素/组件名称?

javascript - Microsoft JScript 运行时错误 : 'WScript' is undefined

python - 基于 Flask-RESTful 的应用程序的实际部署

mysql - 使用 yii 框架测试和生产服务器部署 - 同步数据库更改

javascript - ruby on rails 中的 Coffeescript 编译错误

asp.net - Long Process with Javascript 的进度更新

asp.net - 为 ASP.Net Web 应用程序自定义 azure 403 Forbidden 错误页面

javascript - 构建并部署到 Firebase 后动画停止工作

asp.net - 为什么 aspnet_compiler.exe 这么慢(并且可以做得更快)?

raku - 刷新预编译的 perl6 模块的最佳方法是什么?