如何在生产中重新启动dnx网站?

时间:2016-05-17 07:46:29

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

我通过编程更改更新了ASP.NET CORE/ASP.NET 5 RC1控制器cs文件。

该网站以前已部署在IIS7.5 Windows 2012 Server上的生产中,该版本使用IIS中安装的HTTPPlatformHandler。 这是我必须通过VPN访问的远程服务器。 该站点在IIS中设置为应用程序,该文件夹指向已部署站点的wwwroot目录。

我目前通过在Visual Studio 2015右键单击我的项目并选择发布到本地文件夹,首先在本地部署它来部署它。然后,我将本地文件夹的内容复制到远程网络IIS7.5 Web服务器站点文件夹。

如果我将appsettings.json或更改的.cs文件复制到服务器,则更改不会反映出来。

如果我将整个站点复制到生产服务器,我会在使用消息中获取文件夹和文件。我必须杀死' dnx'进程以便在不收到这些消息的情况下进行复制。

根据我的理解,如果我杀死进程dnx,它将强制重新编译。这是目前我知道在更新网站后重新启动网站的唯一方法,但我认为这不是最佳方式。

  1. 更新运行ASP.NET5 RC1的生产网站后,重新启动网站的标准做法是什么?

  2. 同时更改我的app.settings json文件并不会触发网站重新加载,例如更改web.config中的ASP.NET 4,因此能够重新启动网站非常重要

  3. 如果我在同一个app pool上有多个网站,而我只想在生产中更新一个网站。我怎样才能重新启动一个站点以反映最新的更改?

  4. 是否可能重新启动网站以反映更改,因为如果我只能访问共享文件夹而不是Web服务器本身,则直接更新它并不会导致重新编译?

2 个答案:

答案 0 :(得分:1)

使用IISPlatformHandler,DNX进程由IIS启动(说明位于wwwroot\web.config)。

IIS对您的源文件一无所知,所有请求都转发到DNX。

DNX不会监视源文件的更改,因为那里没有dnx-watch

IIS仅监视wwwroot\web.config文件更改,因此您需要更改/编辑/触摸它以强制IIS重新启动网站(以及DNX进程)。

答案 1 :(得分:1)

我使用msdeploy进行部署,它具有停止和启动应用程序池的命令,使用这些命令解决了我的文件使用错误。有很多方法可以使用msdeploy,下面就是我碰巧使用它的方式。

msdeploy -verb:sync -source:recycleApp -dest:recycleApp="site/pool",recycleMode="StopAppPool",computername=COMPUTERNAME
msdeploy -source:contentPath='SOURCE PATH' -dest:contentPath='\\COMPUTERNAME\wwwroot\' -verb:sync -retryAttempts:2 -disablerule:BackupRule
msdeploy -verb:sync -source:recycleApp -dest:recycleApp="site/pool",recycleMode="StartAppPool",computername=COMPUTERNAME