.Net核心应用程序无法通过FTP上传,托管在IIS上

时间:2017-09-05 23:22:39

标签: asp.net windows iis ftp .net-core

通过在IIS上托管的FTP部署.net核心应用程序时遇到问题。

我想要更新的主要DLL(核心应用程序)不会上传,FTP只是给我一个通用权限错误消息。我认为原因是因为它们正在使用,因为我停止了应用程序池,上传并重新启动它工作正常。

但这不是一个真正的解决方案,还有其他任何发布方法可以缓解这个问题吗?

编辑:

  

"打开写:失败"

是我遇到的唯一错误。我无法在线找到任何内容,我唯一的解决方案就是重启应用池。

1 个答案:

答案 0 :(得分:1)

我找到了答案,我认为它应该是未来的谷歌搜索。

问题是我首先要求IIS代理对kestrel的请求,这意味着就Windows而言,该进程正在使用中。有三种解决方案。

良好的解决方案

在负载均衡器后面有两个(或更多)虚拟机。有一个脚本可以一次关闭一个站点,执行它需要做的事情并重新打开它们。这样做是正确的,没有停机时间!

<强>间歇

在我谈论其他解决方案之前,先解释一下。我很长一段时间没有使用.NET,但显然你可以在添加app_offline.htm的地方做这件事,它会暂时取消你的网站。

在IIS和.Net Core的上下文中,它还会释放该过程,这非常有用,因为它解决了我的问题!虽然我不得不首先访问网页才能生效,除非我弄错了。

糟糕的解决方案

使用自动脚本将_app_offline.htm重命名为app_offline.htm。进行升级,然后还原该更改。使你的网站失败,有点丑,但脚本总是比...更好。

丑陋的解决方案

您只能访问FTP,没有远程管理员或正确的部署过程,因为......原因。

上传app_offline.htm,尽可能少地上传,并希望在删除或重命名app_offline.htm之前不会中断任何内容。

此外,您必须使用EnableAutomaticMigrations = true执行任何数据库迁移,因为您没有服务器访问权限或脚本方法。