首页 > 解决方案 > 如何动态定义 HttpClient BaseAdress

问题描述

我有一个用 c# 编写的 Asp.Net 网页。此网页正在与服务器上的主机通信。服务器地址实际上在我的控制器方法中硬编码为

 static PatientController()
        {
            //Create the HttpClient once and use it
            _httpClient = new HttpClient();
            _httpClient.BaseAddress = new Uri("http://localhost:9002/prom2etheus/v1/");
            _patientList = new List<Patient>();
            
        }

如何将 URI 配置为用户可以在 UI 开始时输入的参数?我的问题是,主机在服务器上运行,而我的 UI 在同一台服务器上运行,但在 Docker 容器中。所以主机的IP可以改变,我不想在我的控制器方法中硬编码主机的IP。哪种方法更好?

标签: c#asp.netparameter-passinguri

解决方案


这取决于。如果您希望 url 保持不变,那么将其存储在数据库或文件中是一个好主意。

另一方面,如果每次应用程序启动时都提示用户是可以的,它可以存储在内存中。这将带来额外的好处,因为没有 IO,所以读/写会快得多。也可能有其他存储选项,例如第三方存储提供。在这两种情况下,您都必须考虑线程安全。


推荐阅读