Я создал два Web API
в Asp.net Core
, один из них - Wrapper Service, который будет развернут на сервере DMZ, а другой - базовый сервис, имеющий доступ к нашей БД Non DMZ. Проблема, с которой я сталкиваюсь, заключается в том, что я не могу общаться между двумя службами.
Оба работают на локальной машине через докеры. Когда я пытаюсь запустить базовую службу, работающую по URL: https://localhost:56788/Rewards
thorugh HttpClient/WebRequest
, я получаю сообщение
No connection could be made because the target machine actively refused it.
DMZ Logi Controller Logi c
[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 c
[Route("[controller]")]
[ApiController]
public class RewardsController : ControllerBase
{
[HttpGet]
public string Get()
{
return "Hello";
}
}
Обновление Эта проблема связана с докерами. Когда я разверну оба API в IIS, он будет работать нормально, но я должен сделать это с помощью Dockers