在没有 IIS 的情况下托管遗留 WebAPI 进行测试

Hosting a legacy WebAPI without IIS for testing

我正在尝试寻找用于测试在生产环境中托管在 IIS 上的 .NET 4.6.2 WebAPI 应用程序的选项,但在测试期间没有这样托管它 运行。

我知道这可以使用 OWIN 实现来完成,其中许多实现似乎需要代码更改和对特定库的引用。由于组织限制,我需要寻找不需要对应用程序代码进行任何重大修改或依赖任何第 3 方库的替代方案。

我也被引导相信 "containers" 因为它们被称为(例如 Docker)可以用于此,但还没有找到明确说明的文档 if/how 这可用于 .NET Core 之前的应用程序。

所以我的问题简单地说:可以 Docker(或类似产品)用于托管遗留 WebAPI 应用程序而不对所述应用程序进行代码更改,这样测试自动化就可以 运行 对端点?

不幸的是,答案是否定的。如果它能工作,那只是因为 Docker 图像中有 IIS。

这里没有捷径。要么使用 OWIN,要么完全切换到 DotNet Core,要么到处使用 IIS。

考虑到您暗示的限制,我猜想让 IIS 无处不在是您最可能的解决方案。

但要努力让您的经理相信 Core 是未来,花在升级上的时间绝对值得。

(Docker 中核心上的运行 是一个有效的解决方案。)