每次更改代码后如何不重新启动IIS?

Cor*_*rio 5 c# asp.net iis asp.net-mvc-5

我正在运行我的Web应用程序。每次我更改一些逻辑代码的平静时,我都需要停止该应用程序并等待IIS完全重新启动。

在网络上的某个地方,我看到有人说MVC5(或ASP.NET Core上的MVC6)的一项很酷的功能,您可以“即时”进行更改。

因此,我是否不能每次都停止并重新启动IIS,还是只是误解了某些内容?

Chr*_*att 5

这取决于 ASP.NET Core 应用程序的部署方式。从本质上讲,它能够即时进行更改的能力归功于它能够作为纯代码部署,而不是作为编译的应用程序部署。Web 服务器本质上是动态编译的。然而,要实现这一点,您需要使用一个 Web 服务器,而不是实际可以动态编译它。IIS 不能。但是,IIS 可以充当 Kestrel 的反向代理,并且 Kestrel 可以即时编译。如果您以传统的“直接编译并发布到 IIS 应用程序目录”的方式部署应用程序,那么您将不会从中受益。


S.D*_*Dav 4

实际上,您不需要在每次部署后重新启动 IIS。每当检测到 DLL 发生更改时,应用程序(不是 IIS)就会回收并重新加载新的 DLL。它只会影响特定的应用程序并重新加载应用程序域。

此外,在 Web 应用程序中编辑 web.config 也会回收该应用程序。

您可以在这篇文章中阅读更多内容。