【发布时间】:2020-07-15 02:18:55
【问题描述】:
我想尝试一下,但我很紧张,因为我们只有一个生产服务器,没有开发服务器。所以我在做任何事情时总是小心翼翼。当他们在投入生产之前不给我一个开发服务器来测试代码时,这是一个奇怪的工作场所......
在运行 asp.net MVC 4 应用程序的 Windows Server 2016 上使用 IIS 10,我想为 IIS 安装 ASP.NET Core 以测试运行新的 rest api。但我不想安装 ASP.NET Core 并发现它对 IIS 做了一些破坏已经在生产中运行的现有 mvc 4 应用程序的事情。我知道 Dotnet Core 在 IIS 之后运行,所以它不应该触及 IIS 运行时,但是在 Windows 中,安装过程中总是有可能发生一些变化,现在现有站点停止工作,我正在努力弄清楚如何解决它。
有人可以告诉我他们尝试这个的经验吗?在 Windows 2016 服务器上安装 asp.net core 会影响现有的 asp.net mvc 4 应用程序吗?
谢谢,
布赖恩
【问题讨论】:
-
“我知道 Dotnet Core 在 IIS 之后运行,所以它不应该接触 IIS 运行时”是不正确的。由于您必须在 IIS 上安装 ASP.NET Core 模块,因此影响始终存在。在很多情况下,您不需要生产 Windows Server,因为 Windows 10 通常就足够了。
-
@LexLi 你忘记了你也可以在 IIS 后面运行 ASP.NET Core(使用 AAR、FastCGI 等)而不是在 inside IIS 中运行它(使用它ASP.NET Core IIS 模块)。我相信您也可以通过将二进制文件放在您网站的应用程序范围内来“安装”该模块,这样它就不会改变服务器范围的配置。
-
还有 IIS Express、“IIS Hostable Web Core”,以及直接使用 HTTP.SYS 运行 Kestrel。
-
@Dai 如果您查看 Microsoft 的指南,则没有详细讨论这些替代方案。 “我相信您还可以通过将二进制文件放在您网站的应用程序范围内来“安装”该模块,这样它就不会改变服务器范围的配置。”但这不是人们从默认安装中得到的,所以如果这破坏了 IIS(很少发生,但过去发生过),人们将无法轻松修复。