Fer*_*X32 5 iis .net-core asp.net-core
我正在使用 FTP 将我的 ASP .Net Core 2.0 应用程序部署到我的远程服务器。远程服务器正在使用 IIS 8。当我发布我的应用程序时,出现以下错误。
Unable to add 'Project.dll' to the Web site. The process cannot access the file because it is being used by another process (550).
Run Code Online (Sandbox Code Playgroud)
我能够通过app_offline.htm在发布目录上手动创建第一个,然后通过 Visual Studio 2017 发布我的应用程序来绕过这个。
我想知道,有没有更简单的方法来做到这一点?或者是否有一种简单的方法可以编写脚本,以便在发布之前自动创建 app_offline ?然后发布后删除?
如果有人好奇的话,我放弃了依赖 VS 来发布我的 .NET Core 项目。我现在正在使用我创建的WinSCP和 _PublishToWeb.bat 脚本来完成该任务。
我首先在根目录下创建了一个名为我的发布文件夹的文件_app.offline.htm。然后当我需要发布时,我运行下面的脚本。
该脚本执行以下操作:
1. 将 .NET Core 项目构建到特定文件夹,我们将其称为“_dist”文件夹。
2.连接到我的ftp服务器/publish文件夹并将“_app_offline.html”重命名为“app_offline.html”,以便服务器离线。
3. 将 _dist 文件夹与发布文件夹同步。
4. 完成后,将“app_offline.htm”更改为“_app_offline.html”,以便重新启动网站。
_PublishToWeb.bat
echo off
echo Publishing to ProjectName (Optional)
set ProjectRemoteFolder=RemoteFolderName
set ConnectionString=ftp://username:password@serverIp:serverPort
set WinSCP="path to WinSCP.com"
set ProjectDistPath="a folder where dotnet publish will build the project to"
set WebAppProject="path of the project. dotnet publish will run here"
rem Build project and put it in to distribution folder
cd %WebAppProject%
dotnet publish -c Release -o %ProjectDistPath%
rem Connect to FTP and synchronize folder
%WinSCP% /command "open %ConnectionString%/%ProjectRemoteFolder%/" "mv _app_offline.htm app_offline.htm" "synchronize remote %ProjectDistPath%" "mv app_offline.htm _app_offline.htm" "exit"
rem pause
Run Code Online (Sandbox Code Playgroud)
我确信有更好的解决方案,但到目前为止这对我来说效果很好。
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |