如何在 VS Code 中本地 运行 .Net Core 2.0 应用程序,就像 Visual Studio 使用 SSL 一样

How to locally run .Net Core 2.0 app in VS Code the same way Visual Studio does with SSL

所以,我们有一个网络应用程序,我们已经迁移到 .net 核心,虽然它 运行 在 Visual Studio 2017 年没问题,因为 Visual Studio 使用它的 "launchSettings.json" 文件来配置 IIS Express 如何 work/launch - 我,对于我的生活,无法弄清楚如何让 VS Code 进入 运行 项目。问题是,我们只使用 HTTPS,并且总是让 IIS Express 使用自签名的 locahost 证书来允许这样做,所以在本地调试站点时,我们总是使用 https://localhost:44300。如前所述,在 Visual Studio 的 launchSerttings.json 文件中输入 url 时效果很好,但 VS Code 不使用它,我能找到的唯一答案总是指使用 Kestrel 服务器的 .Listen() 方法并使用自签名证书和密码来允许使用 HTTPS 端口。 1) 这似乎很愚蠢,我必须在本地将此 "test" 代码添加到 运行,因为当我们部署到 Azure 时我不需要它,因为 Azure 管理证书和 url 对我们来说。 2) Visual Studio 2017 不需要任何关于 Kestrel 的规范来实现这一切。所以,我很难相信在 Visual Studio 代码中没有一些扩展或过程可以实现相同的事情 Visual Studio 正在做的事情允许 IIS Express 与 .Net Core 通信红隼服务器。

梳理所有文档表明 ASPNetCoreModule 是为 IIS 和 Kestrel 处理这种通信的,所以,我认为 hope/guess 必须有一些方法来配置 web.config 文件的标签包括一些可以使这项工作起作用的东西。

我以前在 VS Code 中使用过并尝试过其他 IIS 执行扩展,但那些专注于项目 web.config 中的元素以启动 IIS,这些元素不再存在于 web.config 中,原因是它是一个 .Net Core 应用程序。当 Web 应用程序是 .NET Framework 4.5.2 应用程序时,在迁移到 .Net Core 之前,我已成功 运行使用 IIS Express Executor 扩展连接 Web 应用程序

所以,最终目标是我需要能够在浏览器中转到 https://localhost:44300,并让我们的网站正常工作,但我不想添加任何类型的测试-证书进入 Program.cs 或 Startup.cs 文件中的 Kestrel 配置。如果没有办法做到这一点,那么考虑到 Visual Studio 使这看起来应该非常简单,那将是非常令人失望的。

感谢您的帮助。

Visual Studio 本身在幕后使用了太多技巧,让您相信它很简单。然而,事实并非如此。

我在博客中记录了所有必要的细节 post,

https://blog.lextudio.com/how-visual-studio-launches-iis-express-to-debug-asp-net-core-apps-d7fd3677e3c3

如果您手动执行这些步骤,您应该能够像 VS 一样启动 IIS Express,然后在 Visual Studio 代码中使用它。我知道有一些 VSCode 扩展试图与 IIS 和 IIS Express 集成,但我确实希望这些作者花更多时间学习这种集成并改进他们的扩展以完全支持这些场景。

能够使用以下步骤使其正常工作。

1) 在 VS Code 或任何其他包含 dotnet 命令的类似扩展中安装 IIS Express 执行器

2) 从 https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

下载 Process Explorer

3) 正常启动 Visual Studio IIS Express

4) 打开 Process Explorer(可能需要以管理员身份启动)并找到 iisexpress.exe -> VSIISExeLauncher.exe

5) 右键单击​​ VSIISExeLauncher.exe 并单击属性,然后找到 "Environment" 选项卡。在环境选项卡中,您将看到 2 个变量:LAUNCHER_PATH 和 LAUNCHER_ARGS。复制这两个变量和值。

6) 接下来找到您在 VS 代码中安装的扩展的配置文件(我的是 launch.json 在您项目根目录的 .vscode 文件夹中)。它可能有一个 "environment" 或 "env" 部分用于将环境变量添加到启动参数。添加从第 5 步复制的两个参数。这些参数因人而异,因此参数的值对于您的机器将是唯一的。

7) 从 vs 代码启动 IIS-Express。我对此的特定命令是 "IIS-EE: Start IIS Express Server" 但会根据您安装的扩展而有所不同。您可以按 F1 启动命令。