gpt4 book ai didi

c# - 我可以在一个环境中使用不同的配置运行两个 TestServers 吗?

转载 作者:行者123 更新时间:2023-12-04 15:48:58 26 4
gpt4 key购买 nike

我正在编写一个进程,在两个相同的 API 之间代理数据传输(FWIW,一个是在不同容器中运行的本地 API,另一个在云中)。

我想编写一些测试代码以确保数据传输代码执行应有的操作。到目前为止,我一直在使用 TestServer用于 API 测试,但现在当我想运行两台服务器时,事情可能会变得有点复杂。出现了几个问题:

  1. 如何让他们使用不同的 appsettings.json 文件?现在,只有一个 TestServer,它正在使用测试项目的 appsettings.json。如何配置 TestServer 以使用不同的配置文件?
  2. 一旦我有两个 TestServers 启动并运行,它们是否作为完全独立的实体运行?最特别的是,如果我有任何 static 值,它们的值会在两个环境之间共享,还是它们可以像在现实生活中那样独立运行?

最佳答案

  1. 这在一定程度上取决于您创建测试服务器的方式。
    1. 如果您使用 TestServer 的构造函数(以 IWebHostBuilder 作为输入),您可以使用 Web 主机构建器的 ConfigureAppConfiguration方法来设置你想要的任何配置源。如果您不做任何更改,Appsettings.json 是默认的配置源,但是使用不同的 IWebHostBuilder 创建两个单独的 TestServer 应该很容易,每个都有自己的ConfigureAppConfiguration 调用。
    2. 如果您使用的是 WebApplicationFactory approach , 你可以创建一个 custom WebApplicationFactory并在该类型的 ConfigureWebHost 方法中设置配置源。
  2. 由于它们在同一个进程/应用程序域中运行,因此两个 TestServer 将是独立的实例但共享静态信息。如果这不是您所希望的,您可以考虑在进程外的服务器上运行作为“真正的”服务器(而不是 TestServer),或者更好的是,避免使用静态!

关于c# - 我可以在一个环境中使用不同的配置运行两个 TestServers 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54654568/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com