使用 IIS 设置 .NET Core 开发环境

Setting up .NET Core development environments with IIS

我是 .NET Core 的新手。我们目前正在 .NET core 5 (MVC) 上实现 运行 的 Umbraco9 站点。通常,在常规 .NET 站点上设置开发环境时,我会创建项目,将 IIS 指向同一文件夹,并为类似“local.mysite.com”的内容创建主机条目,然后我就可以加载在我的浏览器中设置 URL,网站就会运行,只需在需要更改后端代码时构建即可。

对于 .NET Core,显然存在一些显着差异。对于初学者,项目中有一个新的 wwwroot 文件夹。因此,在这种情况下,我尝试将我的 IIS 站点指向该 wwwroot 文件夹。这会产生要求 visual studio 发布到该文件夹​​以进行任何前端或后端更改的影响。此外,似乎 .NET 核心将 cshtml 文件编译成 Views.dll 文件,但是当我发布该站点时,该站点抛出 500,除非我手动将 cshtml 文件复制到 wwwroot 文件夹(它也有它的发布后拥有 wwwroot)。

我对开发和托管 .NET Core 的普遍接受的最佳实践进行了大量研究,但尚未得出结论。更复杂的是,我看到一些信息说您可以将 Kestrel 与 IIS 结合使用。所以现在是 Kestrel vs. IISEx vs IIS 的问题。我更喜欢 IIS,因为我希望它与生产相匹配。

我已尝试将我的 IIS 路径设置为 VS 项目的路径,但我得到“Web 服务器未配置为列出此目录的内容”。我启用了目录浏览,但这当然只是列出了目录中的文件。我也安装了托管包。

问题:对于如何为.NET Core 项目设置本地开发环境,是否有一套普遍接受的做法?我真的在从非 .NET Core 开发人员的角度寻找有关 .NET Core 的一些指导。我试图让这个问题尽可能集中,但我觉得我对“旧 .NET”与 .NET 核心的理解存在差距,我希望得到一些指导来帮助填补这一差距。

我没弄明白,所以我唯一能想到的解决方案是将 IIS 指向一个单独的发布文件夹,并在我需要进行更改时发布到该文件夹​​。