Подключение HttpWebRequest.GetRequestStream () активно отклоняется в исполняемом файле, но не в автономном приложении WPF - PullRequest
0 голосов
/ 18 января 2019

Я работаю с веб-сервером для вызова его API через HttpWebRequests. Я написал отдельное приложение WPF для тестирования, и все мои запросы работали правильно. Когда я ссылался на рабочий файл проекта в моем производственном приложении, он теперь возвращает сообщение об активном отклонении запроса сервером.

public string Post(string xmlData, Transaction transaction)
{
        var result = "";

        try
        {
            var webReq = (HttpWebRequest)WebRequest.Create(BaseUrl);
            webReq.Accept = "application/xml";
            webReq.ContentType = "application/xml";
            webReq.Method = "POST";
            webReq.KeepAlive = false;
            webReq.Proxy = WebRequest.DefaultWebProxy;
            webReq.ProtocolVersion = HttpVersion.Version10;

            // If we passed in data to be written to the body of the request add it
            if (!string.IsNullOrEmpty(xmlData))
            {
                webReq.ContentLength = xmlData.Length;
                using (var streamWriter = new StreamWriter(webReq.GetRequestStream())) /**CONNECTION REFUSED EXCEPTION HERE**/
                {

                    streamWriter.Write(xmlData);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
            }
            else //Otherwise write empty string as body
            {
                webReq.ContentLength = 0;
                var data = "";
                using (var streamWriter = new StreamWriter(webReq.GetRequestStream()))
                {

                    streamWriter.Write(data);
                    streamWriter.Flush();
                    streamWriter.Close();
                }
            }

            //Attempt to get response from web request, catch exception if there is one
            using (var response = (HttpWebResponse)webReq.GetResponse())
            {
                using (var streamreader =
                    new StreamReader(response.GetResponseStream() ?? throw new InvalidOperationException()))
                {
                    result = streamreader.ReadToEnd();
                }
            }

            return result;
        }
        catch (WebException e)
        {
            //Handle web exceptions here               
        }
        catch (Exception e)
        {
            //Handle other exceptions here
        }
    }

Кто-нибудь еще сталкивался с этой проблемой?

1 Ответ

0 голосов
/ 18 января 2019

После рассмотрения ваших запросов Fiddler я могу сказать, что причина, вероятно, в разнице IP-адресов.

Вы используете 192.168.1.186:44000 в первый раз и 192.168.1.86:44000 во второй раз.

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