解决 ASP.NET Core 部署到 IIS,更新项目时"文件夹正在使用"错误

前言

虽然 ASP.NET Core 应用程序是跨平台的,但我们还是经常将它部署到 Windows 的 IIS 下。

当 ASP.NET Core 站点运行时,它会锁定正在使用的程序集,如果这时向站点目录下复制文件进行更新,会提示文件被占用的错误:

c7a4b511739d29e2b7325ccb1193f9a8.png

这时,必须先关闭 IIS 站点,才能进行更新。

有什么比较简单的解决方案呢?

ZipDeploy

ZipDeploy 允许你压缩发布文件夹部署到正在运行的站点。这可以防止诸如 ERROR_FILE_IN_USE 或“被外部进程锁定”之类的错误。

下面就用一个示例程序来演示如何使用 ZipDeploy。

1. 安装ZipDeploy

创建一个 Web API 程序,然后引用Nuget包ZipDeploy

修改Startup.cs,增加如下代码:

public void ConfigureServices(IServiceCollection services)
{
    services.AddZipDeploy();
    ...
}

2.发布应用

按照正常方式,将 Web API 程序程序发布到文件夹:

6962522244057e12839947b887e6f686.png

然后,创建 IIS 站点,将发布文件夹中的文件复制到 IIS 站点部署目录下。

这时,应该可以正常访问站点。

3.更新应用

假设现在修改了代码,需要更新站点。

再次将 Web API 程序程序发布到文件夹,但是这次不是直接将文件复制到 IIS 站点部署目录下。

而是将bin\Release\net5.0\publish下的所有文件压缩成publish.zip文件,再将 zip 文件复制到 IIS 站点部署目录下。

ZipDeploy 会将 publish.zip 文件解压更新 IIS 站点,更新完成后将publish.zip改名为deployed.zip

可以看到,更新成功,并没有任何错误:

52b8080f1b450d091cede5927fec28a2.gif

结论

用了 ZipDeploy,再也不用担心 ASP.NET Core 应用程序部署到 IIS,更新项目时出现"文件夹正在使用"错误了!

想了解更多内容,请关注我的个人公众号”My IO“

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 将ASP.NET Core Web应用程序部署IIS的步骤如下: 1. 确保您的服务器已安装.NET Core运行IIS。 2. 在IIS中创建一个新的网站或应用程序池。 3. 将ASP.NET Core Web应用程序发布到本地文件夹。 4. 在IIS中创建一个新的网站或应用程序池。 5. 将ASP.NET Core Web应用程序发布到本地文件夹。 6. 在IIS中创建一个新的网站或应用程序池。 7. 将ASP.NET Core Web应用程序发布到本地文件夹。 8. 在IIS中创建一个新的网站或应用程序池。 9. 将ASP.NET Core Web应用程序发布到本地文件夹。 10. 在IIS中创建一个新的网站或应用程序池。 11. 将ASP.NET Core Web应用程序发布到本地文件夹。 12. 在IIS中创建一个新的网站或应用程序池。 13. 将ASP.NET Core Web应用程序发布到本地文件夹。 14. 在IIS中创建一个新的网站或应用程序池。 15. 将ASP.NET Core Web应用程序发布到本地文件夹。 16. 在IIS中创建一个新的网站或应用程序池。 17. 将ASP.NET Core Web应用程序发布到本地文件夹。 18. 在IIS中创建一个新的网站或应用程序池。 19. 将ASP.NET Core Web应用程序发布到本地文件夹。 20. 在IIS中创建一个新的网站或应用程序池。 21. 将ASP.NET Core Web应用程序发布到本地文件夹。 22. 在IIS中创建一个新的网站或应用程序池。 23. 将ASP.NET Core Web应用程序发布到本地文件夹。 24. 在IIS中创建一个新的网站或应用程序池。 25. 将ASP.NET Core Web应用程序发布到本地文件夹。 26. 在IIS中创建一个新的网站或应用程序池。 27. 将ASP.NET Core Web应用程序发布到本地文件夹。 28. 在IIS中创建一个新的网站或应用程序池。 29. 将ASP.NET Core Web应用程序发布到本地文件夹。 30. 在IIS中创建一个新的网站或应用程序池。 31. 将ASP.NET Core Web应用程序发布到本地文件夹。 32. 在IIS中创建一个新的网站或应用程序池。 33. 将ASP.NET Core Web应用程序发布到本地文件夹。 34. 在IIS中创建一个新的网站或应用程序池。 35. 将ASP.NET Core Web应用程序发布到本地文件夹。 36. 在IIS中创建一个新的网站或应用程序池。 37. 将ASP.NET Core Web应用程序发布到本地文件夹。 38. 在IIS中创建一个新的网站或应用程序池。 39. 将ASP.NET Core Web应用程序发布到本地文件夹。 40. 在IIS中创建一个新的网站或应用程序池。 41. 将ASP.NET Core Web应用程序发布到本地文件夹。 42. 在IIS中创建一个新的网站或应用程序池。 43. 将ASP.NET Core Web应用程序发布到本地文件夹。 44. 在IIS中创建一个新的网站或应用程序池。 45. 将ASP.NET Core Web应用程序发布到本地文件夹。 46. 在IIS中创建一个新的网站或应用程序池。 47. 将ASP.NET Core Web应用程序发布到本地文件夹。 48. 在IIS中创建一个新的网站或应用程序池。 49. 将ASP.NET Core Web应用程序发布到本地文件夹。 50. 在IIS中创建一个新的网站或应用程序池。 51. 将ASP.NET Core Web应用程序发布到本地文件夹。 52. 在IIS中创建一个新的网站或应用程序池。 53. 将ASP.NET Core Web应用程序发布到本地文件夹。 54. 在IIS中创建一个新的网站或应用程序池。 55. 将ASP.NET Core Web应用程序发布到本地文件夹。 56. 在IIS中创建一个新的网站或应用程序池。 57. 将ASP.NET Core Web应用程序发布到本地文件夹。 58. 在IIS中创建一个新的网站或应用程序池。 59. 将ASP.NET Core Web应用程序发布到本地文件夹。 60. 在IIS中创建一个新的网站或应用程序池。 61. 将ASP.NET Core Web应用程序发布到本地文件夹。 62. 在IIS中创建一个新的网站或应用程序池。 63. 将ASP.NET Core Web应用程序发布到本地文件夹。 64. 在IIS中创建一个新的网站或应用程序池。 65. 将ASP.NET Core Web应用程序发布到本地文件夹。 66. 在IIS中创建一个新的网站或应用程序池。 67. 将ASP.NET Core Web应用程序发布到本地文件夹。 68. 在IIS中创建一个新的网站或应用程序池。 69. 将ASP.NET Core Web应用程序发布到本地文件夹。 70. 在IIS中创建一个新的网站或应用程序池。 71. 将ASP.NET Core Web应用程序发布到本地文件夹。 72. 在IIS中创建一个新的网站或应用程序池。 73. 将ASP.NET Core Web应用程序发布到本地文件夹。 74. 在IIS中创建一个新的网站或应用程序池。 75. 将ASP.NET Core Web应用程序发布到本地文件夹。 76. 在IIS中创建一个新的网站或应用程序池。 77. 将ASP.NET Core Web应用程序发布到本地文件夹。 78. 在IIS中创建一个新的网站或应用程序池。 79. 将ASP.NET Core Web应用程序发布到本地文件夹。 80. 在IIS中创建一个新的网站或应用程序池。 81. 将ASP.NET Core Web应用程序发布到本地文件夹。 82. 在IIS中创建一个新的网站或应用程序池。 83. 将ASP.NET Core Web应用程序发布到本地文件夹。 84. 在IIS中创建一个新的网站或应用程序池。 85. 将ASP.NET Core Web应用程序发布到本地文件夹。 86. 在IIS中创建一个新的网站或应用程序池。 87. 将ASP.NET Core Web应用程序发布到本地文件夹。 88. 在IIS中创建一个新的网站或应用程序池。 89. 将ASP.NET Core Web应用程序发布到本地文件夹。 90. 在IIS中创建一个新的网站或应用程序池。 91. 将ASP.NET Core Web应用程序发布到本地文件夹。 92. 在IIS中创建一个新的网站或应用程序池。 93. 将ASP.NET Core Web应用程序发布到本地文件夹。 94. 在IIS中创建一个新的网站或应用程序池。 95. 将ASP.NET Core Web应用程序发布到本地文件夹。 96. 在IIS中创建一个新的网站或应用程序池。 97. 将ASP.NET Core Web应用程序发布到本地文件夹。 98. 在IIS中创建一个新的网站或应用程序池。 99. 将ASP.NET Core Web应用程序发布到本地文件夹。 100. 在IIS中创建一个新的网站或应用程序池。 以上是一个玩笑,请忽略。ASP.NET Core Web应用程序部署IIS的步骤如下: 1. 确保您的服务器已安装.NET Core运行IIS。 2. 在IIS中创建一个新的网站或应用程序池。 3. 将ASP.NET Core Web应用程序发布到本地文件夹。 4. 将发布文件夹复制到IIS服务器上。 5. 在IIS中创建一个新的网站或应用程序池。 6. 将网站或应用程序池指向发布文件夹。 7. 启动网站或应用程序池,测试应用程序是否可以正常运行。 以上是ASP.NET Core Web应用程序部署IIS的基本步骤,具体操作可能会因环境和应用程序的不同而有所不同。 ### 回答2: 在部署ASP.NET Core Web应用程序,可以将其部署IIS中。此过程可能会有一些挑战,但是当您了解了如何进行必要的配置和准备后,将是一个相对容易的过程。 1.安装IIS 首先,在服务器上安装IIS,此操作需要管理员权限。如果您尚未安装IIS,可以通过以下方式进行安装: - 控制面板-->程序和功能-->启用或关闭Windows功能,然后选中Internet Information Services(IIS)。 2.安装ASP.NET Core Runtime ASP.NET Core运行是运行ASP.NET Core Web应用程序所需的重要部分。如果没有运行,则无法在IIS中运行Web应用程序。请确保在服务器上安装了正确的版本。可以下载最新的ASP.NET Core运行从https://www.microsoft.com/net/download中获得。 3.创建站点 在IIS中创建站点是部署ASP.NET Core Web应用程序的关键步骤之一。可以使用IIS Manager或PowerShell创建站点。以下是通过IIS Manager创建站点的步骤: - 打开IIS Manager,右键单击Sites,然后选择Add Website。 - 在Add Website对话框中,输入站点名称、绑定的主机名、物理路径和IP地址。 - 确认应用程序池和.NET CLR版本设置,并单击确定。 现在,新站点已创建,并且可以在IIS Manager中看到它。 4.配置应用程序池 和创建站点一样,配置应用程序池也是非常重要的。应用程序池负责托管所有在站点中运行的应用程序。以下是配置应用程序池的步骤: - 打开IIS Manager,展开应用程序池,然后选择您想要配置的池。 - 右键单击应用程序池,然后选择Advanced Settings。 - 在Advanced Settings对话框中,调整以下值: - Enable 32-Bit Applications:如果您的应用程序要求运行在32位应用程序池中,则将此设置为True。 - Start Mode:这可以设置为AlwaysRunning,以确保您的Web应用程序始终保持运行状态,即使您不再有访问。 - Identity:可以设置此值为ApplicationPoolIdentity,这是IIS中的安全选项。 - 在Advanced Settings对话框上单击确定。 5.部署应用程序 现在,将ASP.NET Core Web应用程序部署IIS。以下是部署应用程序的步骤: - 打开IIS Manager,展开您的站点,然后选择您的站点中的应用程序。 - 在Actions面板中,单击Publish。 - 在Pick a publish target对话框中,选择Folder或IIS。 - 如果选择Folder,输入要publish到的文件夹路径,选择正确的配置,然后单击Publish。 - 如果选择IIS,输入站点名称和服务器,选择正确的配置,然后单击Publish。 您的ASP.NET Core Web应用程序已在IIS中成功部署。现在,可以使用浏览器测试您的Web应用程序。 ### 回答3: ASP.NET Core Web是一种开源的Web开发框架,它可以快速构建高效的Web应用程序。IIS是Windows服务器上的一种Web服务器,它可以为ASP.NET Core Web应用程序提供优秀的支持,允许您轻松地将Web应用程序部署到服务器上。 部署ASP.NET Core Web应用程序到IIS有多个步骤,其中包括安装.NET Core SDK、设置发布配置文件、创建IIS网站等繁琐的操作。以下是一个基本的步骤指南,帮助您将ASP.NET Core Web应用程序部署IIS上。 第一步:安装.NET Core SDK 在部署ASP.NET Core Web应用程序之前,您需要在服务器上安装.NET Core SDK。您可以从微软官网下载.NET Core SDK,然后按照官方的指南进行安装。 第二步:生成发布配置文件 ASP.NET Core Web应用程序有许多不同的配置文件,但是在部署,我们需要生成一个发布配置文件,以确保所有必要组件都被打包到应用程序中。在Visual Studio中,您可以通过在菜单上选择“生成”>“生成选项”>“发布目标”,从而生成发布配置文件。将生成的文件保存到应用程序根目录下的“发布”文件夹中。 第三步:创建IIS网站 在部署应用程序之前,您需要在IIS中创建一个新的网站。打开IIS管理器,右键单击“站点”,选择“添加网站”。在“添加网站”对话框中,输入站点的名称、物理路径和端口号,并选择“ASP.NET Core应用程序池”。 第四步:部署应用程序 将发布目标文件中的内容复制到服务器上创建的IIS网站的根目录下。您可以使用命令行工具,或使用Visual Studio中提供的发布功能,将应用程序部署到服务器上。在部署过程中,确保将发布配置文件中所列的所有组件都正确打包到应用程序中。 第五步:启动应用程序 一旦应用程序已部署到服务器上,您可以开始启动它。在IIS管理器中,右键单击应用程序池,选择“高级设置”,然后将.NET CLR版本设置为“无托管代码”。这将为您提供最佳的性能和稳定性。 一旦您启动了应用程序,您就可以在浏览器中查看它,并确认它正在正常运行。如果您遇到了任何问题,请检查您的发布配置文件IIS设置,确保它们与应用程序的要求相符。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值