【问题标题】:Error code 550 when publishing .NET Core 3.1 app through FTP通过 FTP 发布 .NET Core 3.1 应用程序时出现错误代码 550
【发布时间】:2021-09-20 08:06:42
【问题描述】:

我有一个 .NET Core 3.1 应用程序 (api),我正在在线发布并且我在 Visual Studio 中使用发布方法 FTP。 它工作得很好,但是当我在编码后再次尝试发布时,我总是得到这些错误:

  • 发布文件夹 /...
  • 无法将“AutoMapper.dll”添加到网站。该进程无法访问该文件,因为它正被另一个进程使用 (550)。
  • 无法将“projectname.API.dll”添加到网站。该进程无法访问该文件,因为它正被另一个进程使用 (550)。
  • 无法将“projectname.Domain.dll”添加到网站。该进程无法访问该文件,因为它正被另一个进程使用 (550)。
  • ...

这在我项目中的所有 dll 上持续了相当长的一段时间。我可以在工作后发布的唯一方法是完全重置我的电脑删除我的项目中必须发布的所有 bin 和 obj 文件夹,打开 VS 并在做任何其他事情之前发布

我怀疑这与 VS 在我尝试发布时仍在某处/以某种方式使用 dll 有关。

我已尝试在任务管理器中定位进程,但没有发现任何可能导致此问题的异常/问题。

任何关于此的帮助将不胜感激,因为我也喜欢为我编写的每条路由更新我的 API,以便在已部署的版本上进行测试,但这样很麻烦......

谢谢!

【问题讨论】:

  • 您使用 FTP 推送文件的服务器是 windows 吗?您使用的是共享主机吗?
  • @MrMoeinM 服务器没问题,支持点网托管,其他项目也能正常使用。不,目前对于这个项目,.net 核心应用程序是单独托管的,而不是服务器上的任何其他服务。不过,当我尝试发布它时,我很确定问题就在我这边,因为重新启动我的电脑可以修复它。
  • 好的,但我需要知道你的服务器窗口是否使用 IIS 作为网络服务器?
  • 我通过这个网站somee.com/FreeAspNetHosting.aspx 进行免费计划。是 windows,我认为不是 IIS,只是运行 ASP.Net Core 3.1

标签: asp.net .net asp.net-core ftp publishing


【解决方案1】:

我不认为这是你的电脑。错误 550 是 FTP 错误。我认为这里发生的是,当您通过 FTP 发布您的网站并在浏览器中打开您的网站时,您实际上所做的就是在您的服务器上运行您的应用程序。

当您的应用程序正在运行时,您无法修改正在使用的 DLL。

那么为什么重启你的电脑会解决这个问题呢?这是因为这些托管服务提供商的配置是,如果一段时间内没有人请求网站,则终止该应用程序。这是因为节省内存和cpu。

因此,当您重新启动您的电脑并删除 bin 和 obj 文件夹并重建您的项目时,这需要时间,因为在此期间没有任何请求发送到您的网站,您的应用程序被终止,现在您可以再次使用 FTP 更新您的网站。

要测试这种情况,只需关闭浏览器,半小时内不要打开您的网站,然后尝试通过 FTP 更新您的网站。 或者,您可以重新启动 PC 并删除 bin 和 obj 文件夹,但在使用 FTP 推送文件之前,请在浏览器中打开您的站点。这必须运行您的应用程序并再次导致 550 错误。

【讨论】:

  • 我找到了一种手动停止托管然后发布我的作品的方法。这解决了它!现在我可以毫无问题地发布了。如果其他人可以访问该api,这会给我带来很多问题,谢谢!现在,我将在此期间实施维护窗口并安排更新。 :)
猜你喜欢
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 2021-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
相关资源
最近更新 更多