如何获得" ERROR_FILE_IN_USE"使用FTP /共享文件夹部署ASP.NET Core网站时出错?

时间:2016-08-26 14:54:51

标签: iis deployment asp.net-core asp.net-core-mvc iis-8

我有一个针对const

ASP.NET Core RTM网络应用程序

在我的.net framework 4.52

project.json

当我将其发布到文件夹时,它会创建一个"frameworks": { "net452": {} }, ,当我在浏览器中访问应用程序时,exe就会运行。

我需要将网站发布到具有MyWebApplication.exeWindows Server 2012

的网络服务器

我通过VPN共享文件夹访问网站部署目录。

我第一次将网站发布到它正常工作的文件夹。我访问网站网址并加载网站。但是,当我想在更改和复制文件后重新发布网站时,它告诉我IIS8正在使用中并且发布失败。

我知道如何解决这个问题的唯一方法是在发布之前杀死Web服务器上任务管理器中的MyWebApplication.exe。但是,由于我只能通过共享目录访问该服务器,因此无法实现。

使用MyWebApplication.exe个网站,我不会遇到此问题。

使用ASP.NET 4我也没有遇到问题,因为它使用ASP.NET CORE RC1虽然dnx允许我复制网站而不必杀死{{1} }}。我只需要触摸HTTPPlatformHandler,网站就会重新启动。

我的问题是:

  1. 有没有办法复制/发布已部署的网站的新更改版本(FTP或通过共享文件夹访问)?

  2. 有没有办法停止网站,例如通过FTP或共享文件夹访问从Web服务器的内存中卸载dnx.exe

3 个答案:

答案 0 :(得分:4)

ERROR_FILE_IN_USE错误是github上的open issue

在发布之前,只需将web.config删除发布目录即可。

如果没有web.config,该网站将自动停止并从内存中卸载文件,并阻止任何人再次访问该网站将该网站加载到内存中。

另一种解决方法是将app_offline.htm复制到您的发布目录,该目录也可以正常工作。 Link

答案 1 :(得分:1)

我通过在托管上停止我的网络应用来决定这个问题。在这一切都成功发布之后。

答案 2 :(得分:0)

您应该将此添加到您的发布个人资料

<EnableMSDeployAppOffline>True</EnableMSDeployAppOffline>

根据https://github.com/dotnet/aspnetcore/issues/3719