在没有 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 中核心上的运行 是一个有效的解决方案。)
我正在尝试寻找用于测试在生产环境中托管在 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 中核心上的运行 是一个有效的解决方案。)