gpt4 book ai didi

iis - 将 .Net Core 发布到 IIS - 进程无法访问文件

转载 作者:行者123 更新时间:2023-12-04 21:38:32 27 4
gpt4 key购买 nike

我正在使用 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).

我可以通过手动创建 app_offline.htm 来绕过这个。首先在发布目录上,然后通过 Visual Studio 2017 发布我的应用程序。

我想知道,有没有更简单的方法来做到这一点?或者是否有一种简单的方法可以编写脚本,以便在发布之前自动创建 app_offline ?然后发布后删除?

最佳答案

任何好奇的人,我放弃了依赖 VS 发布我的 .NET Core 项目。我现在正在使用 WinSCP 以及我为完成任务而创建的 _PublishToWeb.bat 脚本。

我首先创建了一个名为 _app.offline.htm 的文件在根目录上我的发布文件夹。然后当我需要发布时,我运行下面的脚本。

该脚本执行以下操作:
1. 将 .NET Core 项目构建到特定文件夹,我们称之为“_dist”文件夹。
2. 连接到我的 ftp server/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

我确信那里有更好的解决方案,但到目前为止,这对我来说效果很好。

关于iis - 将 .Net Core 发布到 IIS - 进程无法访问文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48101274/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com