0x80004005 Неуспешен опит за свързване, тъй като свързаната страна не е отговорила правилно след период от време

Сблъсквам се с този проблем, докато осъществявам достъп до уеб услуга от ASP.NET приложение.
Но проблемът възниква, когато то се хоства на Windows сървър.
Когато се хоства на настолен компютър, работи добре.
Извиквам уеб услуга с обект HttpWebRequest.

Дори работи добре в сървър от HTML/Java Script приложение. Единственият проблем възниква в приложението ASP.NET, хоствано на сървъра. Получавам следната грешка. IIS 8.0 е инсталиран на сървъра.

Unable to connect to the remote server
System.Net.Sockets.SocketException (0x80004005): A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond 153.2.228.76:443 at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress) at System.Net.ServicePoint.ConnectSocketInternal(Boolean connectFailure, Socket s4, Socket s6, Socket& socket, IPAddress& address, ConnectSocketState state, IAsyncResult asyncResult, Exception& exception)
at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at VSPTestApplication.UPS.CalculateRate_Click(Object sender, EventArgs e)
System.IO.Stream GetRequestStream(System.Net.TransportContext ByRef) 

person Pabitra Dash    schedule 19.12.2013    source източник
comment
Добре дошли в SO. Под хостван на вашия работен плот имате ли предвид, че приложението ASP.NET като клиент на услугата и услугата работят на една и съща машина, вашата машина за разработка? Прецизирайте малко въпроса си, за да стане по-ясно обстоятелството, при което отстранявате неизправности, спрямо обстоятелството, което работи.   -  person J0e3gan    schedule 19.12.2013
comment
Благодаря ви много за отговора. Това е просто ASP.NET приложение. Имам предвид, че когато се хоства в IIS, инсталиран на моя работен плот, работи добре. Но хоствам същото приложение в IIS, инсталирано на Windows сървър, след което то не работи.   -  person Pabitra Dash    schedule 19.12.2013
comment
Ако приложението ASP.NET като клиент на услугата и услугата са на различни машини, когато получите грешката, тогава трябва да отстраните неизправности при свързване от клиентската машина към отдалечената машина, хостваща услугата, с нещо просто - напр. уеб браузър, telnet и др.   -  person J0e3gan    schedule 19.12.2013
comment
Това не е клиент за услуги, а просто приложение на ASP.NET. Свързването е добре, когато се тества от уеб браузър с приложение за HTML/Java скрипт. Не работи от приложението ASP.NET, когато същото се хоства в IIS в Windows сървър.   -  person Pabitra Dash    schedule 19.12.2013


Отговори (2)


Гледайки от вашето съобщение за грешка, забелязвам, че се опитвате да достигнете HTTPS url. Това може да е трудно, когато работите в aspnet в IIS, защото вашият код се изпълнява в различен потребителски контекст. И необходимите сертификати може да не са инсталирани в този контекст. Например, ако целевият сървър има сертификат, подписан от CA, който не се доверява на машината на клиента (asp.net/iis/windows), тогава заявката няма да успее.

Грешка в сертификата обаче ще се прояви ясно. няма да се покаже като неуспешно свързване.

Предлагам да използвате средство за регистриране на system.net за създаване на лог файл. Това трябва да помогне за отстраняването на проблема. Освен това трябва да стартирате wireshark на сървъра на Windows и да видите къде сървърът се опитва да се свърже. Може да е толкова просто, че Windows сървърът няма връзка с целта. Или може да има прокси по средата, което прецаква мрежовия път.

За да настроите регистрирането на system.net, можете да поставите следния конфигурационен файл в същата директория като приложението, което изпълнява вашия код.

<?xml version="1.0" encoding="UTF-8" ?>

<configuration>
<system.diagnostics>
<trace autoflush="true" />

<sources>
<source name="System.Net">

<listeners>
    <add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
    <add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
    <add name="System.Net"/>
</listeners>
</source>
</sources>
<sharedListeners>
    <add
        name="System.Net"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="System.Net.trace.log"
    />
</sharedListeners>
<switches>
    <add name="System.Net" value="Verbose" />
    <add name="System.Net.Sockets" value="Verbose" />               
    <add name="System.Net.Cache" value="Verbose" />
</switches>

за повече подробности относно записването:

създаване на tracelog със system.net

person feroze    schedule 27.02.2015

Аз също се сблъсках със същия проблем и го реших само чрез отстраняване на неизправности в мрежата.

в windows-> settings -> Network & Internet -> Network Troubleshooter

person Community    schedule 26.12.2018