Chr*_*sen 9 asp.net pre-compilation web-deployment
自动生成的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.
Run Code Online (Sandbox Code Playgroud)
内容:
<precompiledApp version="2" updatable="true"/>
Run Code Online (Sandbox Code Playgroud)
据我所知,网站使用一些卷影复制功能,允许更新网站"运行时",如app.config等.但这1文件似乎是一个例外.
除了在部署时停止网站,有人可以建议一个解决方法吗?
亲切的问候
根据错误消息中的路径判断,我发现您在部署时尝试通过网络共享复制文件。直接通过网络共享或 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\
Run Code Online (Sandbox Code Playgroud)
“plink”是一个免费的 Windows SSH 工具(命令行),您的开发计算机上需要它
“web.prod.local”是您的服务器地址。
“c:\Sites\Website\”是您的网站在服务器上的路径
您需要在服务器上安装 SSH 才能远程运行命令,最简单的选择是安装免费工具:“freesshd”(google 一下)
将“unzip.exe”也放到服务器上,您会看到它就在那里被调用。最简单的方法是将其直接放入 c:\Sites\Website\
附言。这只是一个例子,您可以提出自己的解决方案
| 归档时间: |
|
| 查看次数: |
2164 次 |
| 最近记录: |