首页 > 解决方案 > 如何使用 Kestrel 对简单的 Web 服务进行复制并运行部署?

问题描述

我们正在开展一个项目,其中涉及我们编写一个客户端来调用我们的客户将实现的 REST Web 服务。

所述网络服务将由客户根据我们将设计的规范进行开发。目的是创建一个标准,将来多个客户都可以使用,而无需我们以任何方式修改我们的客户。

现在,在我与这家公司合作的 30 年中,我们从来没有让客户根据预定义的规范成功构建 Web 服务并不会改变需求。即使当我们在做 SOAP 接口时,我们会向客户提供 .wsdl,他们仍然无法正确地实现服务器。

但是我们已经承诺了,所以我正在尝试尽可能多地牵手。

我们正在写一个客户端。为了测试它是否有效,我们需要一个服务器的测试实现。我的意图是创建一个测试服务器和一个测试客户端,以及我们的实际客户端,并为客户提供测试服务器和测试客户端,告诉他们开发自己的测试客户端工作的服务器。

那么,我需要的是一个客户可以轻松安装和运行的测试 Web 服务器,以及一个也可以轻松安装和运行的测试客户端。

理想的情况是单个 exe 可以从每个命令行运行,而无需运行安装程序。

我们一直是 .NET Framework 商店,但我们一直打算在明年左右迁移到 .NET Core。

我当时的想法是,如果我们可以在 .NET 核心中构建测试服务器和客户端,这将为未来的客户提供更多运行它的选择。

那么,问题来了,如何在 .NET Core 中创建一个简单的 Web 服务,使其可以从命令行运行,而无需配置 Web 服务器、防火墙等?

这不需要作为后台服务运行,不需要配置为与数据库通信,不需要在任何特定端口上运行等。它只是在指定端口上启动并监听直到它关闭下。

例如;

$ mytestserver --port 5432
$ mytestclient http://localhost:5432

想法?

标签: c#asp.net-core.net-corekestrel-http-server

解决方案


是一个基本的 hello world 应用程序,但这是 .net core 的旧版本,即 1.1。新的与基本逻辑没有太大区别。

对于端口和配置,您必须查看有关如何指定端口的文档。你基本上会使用 AppSettings.json。是有关配置文件和应用程序设置的更多信息。


推荐阅读