From a2b55742c64f4b2c9e6bd85ed3733adccdec48de Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 13 三月 2026 14:37:27 +0800
Subject: [PATCH] fix: 修复Web页面HttpClient依赖注入问题

---
 Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Edit.cshtml.cs |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Edit.cshtml.cs b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Edit.cshtml.cs
index d4b125d..9310d00 100644
--- a/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Edit.cshtml.cs
+++ b/Code/WCS/WIDESEAWCS_S7Simulator/WIDESEAWCS_S7Simulator.Web/Pages/Edit.cshtml.cs
@@ -12,13 +12,12 @@
 public class EditModel : PageModel
 {
     private readonly ILogger<EditModel> _logger;
-    private readonly HttpClient _httpClient;
+    private readonly IHttpClientFactory _httpClientFactory;
 
     public EditModel(ILogger<EditModel> logger, IHttpClientFactory httpClientFactory)
     {
         _logger = logger;
-        _httpClient = httpClientFactory.CreateClient();
-        _httpClient.BaseAddress = new Uri($"{Request.Scheme}://{Request.Host}");
+        _httpClientFactory = httpClientFactory;
     }
 
     [BindProperty]
@@ -37,7 +36,10 @@
 
         try
         {
-            var response = await _httpClient.GetAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(id)}");
+            var httpClient = _httpClientFactory.CreateClient();
+            httpClient.BaseAddress = new Uri($"{Request.Scheme}://{Request.Host}");
+
+            var response = await httpClient.GetAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(id)}");
 
             if (response.IsSuccessStatusCode)
             {
@@ -45,7 +47,7 @@
                 IsRunning = CurrentInstance?.Status == InstanceStatus.Running;
 
                 // Load existing config
-                var configResponse = await _httpClient.GetAsync($"/api/SimulatorInstances");
+                var configResponse = await httpClient.GetAsync($"/api/SimulatorInstances");
                 if (configResponse.IsSuccessStatusCode)
                 {
                     var allInstances = await configResponse.Content.ReadFromJsonAsync<List<InstanceState>>();
@@ -82,6 +84,10 @@
 
         try
         {
+            // 鍒涘缓HttpClient骞惰缃瓸aseAddress
+            var httpClient = _httpClientFactory.CreateClient();
+            httpClient.BaseAddress = new Uri($"{Request.Scheme}://{Request.Host}");
+
             var config = new InstanceConfig
             {
                 Id = Input.Id,
@@ -102,7 +108,7 @@
                 }
             };
 
-            var response = await _httpClient.PutAsJsonAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(Input.Id)}", config);
+            var response = await httpClient.PutAsJsonAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(Input.Id)}", config);
 
             if (response.IsSuccessStatusCode)
             {
@@ -134,7 +140,10 @@
     {
         try
         {
-            var response = await _httpClient.GetAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(id)}");
+            var httpClient = _httpClientFactory.CreateClient();
+            httpClient.BaseAddress = new Uri($"{Request.Scheme}://{Request.Host}");
+
+            var response = await httpClient.GetAsync($"/api/SimulatorInstances/{Uri.EscapeDataString(id)}");
             if (response.IsSuccessStatusCode)
             {
                 CurrentInstance = await response.Content.ReadFromJsonAsync<InstanceState>();

--
Gitblit v1.9.3