gpt4 book ai didi

asp.net - 无法在两个服务之间进行通信

转载 作者:行者123 更新时间:2023-12-02 19:52:04 25 4
gpt4 key购买 nike

我在Web API中创建了两个Asp.net Core,一个是要在DMZ服务器上部署的包装程序服务,另一个是可以访问我们的DB Non DMZ的核心服务。我面临的问题是我无法在两个服务之间进行通信。

两者都通过docker在本地计算机上运行。当我尝试运行在url上运行的核心服务时:https://localhost:56788/Rewards thorugh HttpClient/WebRequest我收到消息
No connection could be made because the target machine actively refused it.
DMZ Controller 逻辑

[Route("[controller]")]
[ApiController]
public class RewardsController : ControllerBase
{
[HttpGet]
public string Get()
{
string response = string.Empty;
//using (var client = new HttpClient())
//{
// client.BaseAddress = new Uri("http://localhost:5000/");
// //HTTP GET
// var responseTask = client.GetAsync("Rewards");
// responseTask.Wait();

// var result = responseTask.Result;
// if (result.IsSuccessStatusCode)
// {
// response = result.ToString();
// }
// else //web api sent error response
// {
// //log response status here..
// response = "Error";
// }
//}
string sURL = "https://localhost:56788/Rewards";

WebRequest wrPostURL = WebRequest.Create(sURL);

wrPostURL.Method = "GET";
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;

using (HttpWebResponse webresponse = wrPostURL.GetResponse() as HttpWebResponse)
{
Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
StreamReader loResponseStream = new StreamReader(webresponse.GetResponseStream(), enc);
var jsonResponse = loResponseStream.ReadToEnd();
loResponseStream.Close();
webresponse.Close();
}
return response;
}
}

NON-DMZ Controller 逻辑
[Route("[controller]")]
[ApiController]
public class RewardsController : ControllerBase
{
[HttpGet]
public string Get()
{
return "Hello";
}
}

更新
这个问题是由于 docker 。当我将两个API都部署到IIS时,它将正常工作,但是我必须使用Docker

最佳答案

由于我正在调用localhost与在另一个容器上运行的其他API通信而发生问题。当我们调用localhost时,第一个容器开始寻找在同一容器上运行的服务。通过使用VM/Local Machine IP而不是localhost可以避免此问题。

关于asp.net - 无法在两个服务之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59962754/

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