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

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

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

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

但这并不是真正的解决方案,是否有任何其他发布方法可以缓解此问题?

编辑:

"open for write: failure"

是我遇到的唯一错误。我在网上找不到任何东西,唯一的解决办法是重新启动应用程序池。

最佳答案

我找到了一个答案,我想它应该在这里以供将来谷歌搜索。

问题正如我最初预期的那样,IIS 将请求代理到 kestrel,这意味着就 Windows 而言,该进程正在使用中。共有三种解决方案。

好的解决方案

在负载均衡器后面的 Azure 上有两个(或更多)虚拟机。有一个脚本可以一次关闭一个网站,做它需要做的事情然后重新打开它们。正确执行此操作,无需停机!

中场休息

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

在 IIS 和 .Net Core 的上下文中,它还释放了进程,这非常有用,因为它解决了我的问题!尽管我必须先访问网页才能生效,除非我弄错了。

糟糕的解决方案

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

丑陋的解决方案

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

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

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

关于asp.net - .Net 核心应用程序无法通过 FTP 上传,托管在 IIS 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46064616/

相关文章:

windows - 是否可以集成到 "Windows Update"来升级自己的应用?

php - W7 Pro IIS 7.5 覆盖 PHP 位置 : Header

c# - 在 asp.net 中传递和获取太大的查询字符串

javascript - 如何在 asp.net 模型中调用 vanilla js 中的服务

c# - Ext.Net Framework,好还是坏?可用于社区版本的生产性工作?备择方案?

php - 如何在 Linux 中从 PHP 运行 espeak

windows - 为什么这个简单的 Powershell 脚本在需要时不退出?

django - 被 CORS 策略阻止 : No 'Access-Control-Allow-Origin' header is present on the requested resource

asp.net - Azure 上 .Net 4.7 应用程序的 Myapp..runtimeconfig.json 配置文件的适当内容

javascript - 循环遍历 String 中的对象数组