我通过编程更改更新了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,它将强制重新编译。这是目前我知道在更新网站后重新启动网站的唯一方法,但我认为这不是最佳方式。
更新运行ASP.NET5 RC1
的生产网站后,重新启动网站的标准做法是什么?
同时更改我的app.settings
json文件并不会触发网站重新加载,例如更改web.config
中的ASP.NET 4
,因此能够重新启动网站非常重要
如果我在同一个app pool
上有多个网站,而我只想在生产中更新一个网站。我怎样才能重新启动一个站点以反映最新的更改?
是否可能重新启动网站以反映更改,因为如果我只能访问共享文件夹而不是Web服务器本身,则直接更新它并不会导致重新编译?
答案 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