вызов HTTPS API из другого веб-API - PullRequest
0 голосов
/ 27 февраля 2019

Я прилагаю приведенный ниже фрагмент кода, который прекрасно работает в localhost, но выдает веб-исключение / сокет при размещении в IIS на другом сервере.

System.Net.Sockets.SocketException (0x80004005): соединениепопытка не удалась, потому что подключенная сторона не ответила должным образом через определенный промежуток времени, или не удалось установить установленное соединение, поскольку подключенный хост не смог ответить 40.113.232.243:443

Она также выдавала ту же ошибку в локальной сети, если только ядобавил эту строку - httpWebRequest.Proxy = WebRequest.GetSystemWebProxy ();

, но он выдает исключение socketexception при размещении на сервере iis.

public async Task<string> Get()
{
        try
        {
            string uri = "https://hp-reporting-*****.azurewebsites.net/********";

            var httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
            httpWebRequest.Timeout = 600000;

            httpWebRequest.Proxy = WebRequest.GetSystemWebProxy(); // adding this line resolved error in local but still same issue persists when hosted in iis in another server

            httpWebRequest.Method = "GET";

            HttpWebResponse httpResponse = (HttpWebResponse)await httpWebRequest.GetResponseAsync();

            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var response = streamReader.ReadToEnd();
                // this is your code here...
                System.Xml.Linq.XNode node = JsonConvert.DeserializeXNode(response, "Root");

                return node.ToString();
            }

1 Ответ

0 голосов
/ 28 февраля 2019

хорошо, посмотрите, что делает эта строка: https://docs.microsoft.com/en-us/dotnet/api/system.net.webrequest.getsystemwebproxy?view=netframework-4.7.2

На вашем локальном компьютере у вас есть веб-прокси, определенный в Internet Explorer, который вы используете при совершении вызова.На развернутом IIS его явно нет.

Итак, либо вы настраиваете сервер именно так, как вы настраиваете свой локальный компьютер, либо находите другой способ решить эту проблему локально, без использования этого локального прокси.Когда он заработает, вы снова развернетесь, и он заработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...