Прокси-сервер работает локально, но не при загрузке на хостинг

Я потратил время на настройку прокси. На данный момент я пользуюсь услугой proxybonanza. Они предоставляют мне прокси, который я использую для получения веб-страниц.

я использую HTMLAGILITYPACK

теперь, если я запускаю свой код без прокси, нет проблем локально или при загрузке на сервер webhost.

если я решу использовать прокси, это займет несколько больше времени, но он все еще работает в местном масштабе.

 If I publish my solution to, to my webhost I get a SocketException (0x274c) 

 "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 38.69.197.71:45623"

Я отлаживаю это в течение длительного времени.

Мои приложения.config имеет две записи, которые имеют отношение к этому

httpWebRequest useUnsafeHeaderParsing="true" 
httpRuntime executionTimeout="180"

это помогло мне справиться с парой проблем.

теперь это мой код на C#.

 HtmlWeb htmlweb = new HtmlWeb();
 htmlweb.PreRequest = new HtmlAgilityPack.HtmlWeb.PreRequestHandler(OnPreRequest);
 HtmlDocument htmldoc = htmlweb.Load(@"http://www.websitetofetch.com,
                                         "IP", port, "username", "password");

 //This is the preRequest config
 static bool OnPreRequest(HttpWebRequest request)
    {
      request.KeepAlive = false;
        request.Timeout = 100000;
        request.ReadWriteTimeout = 1000000; 
        request.ProtocolVersion = HttpVersion.Version10;
        return true; // ok, go on
    }

что я делаю не так? Я включил трассировщик в appconfig, но я не получаю журнал на своем веб-хосте...?

  Log stuff from app.config

 <system.diagnostics>
 <sources>
  <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing" >
     <listeners>
        <add name="ServiceModelTraceListener"/>
     </listeners>
  </source>


  <source name="System.ServiceModel" switchValue="Verbose,ActivityTracing">
     <listeners>
        <add name="ServiceModelTraceListener"/>
     </listeners>
     </source>
     <source name="System.Runtime.Serialization" switchValue="Verbose,ActivityTracing">
        <listeners>
           <add name="ServiceModelTraceListener"/>
        </listeners>
     </source>
   </sources>
   <sharedListeners>
   <add initializeData="App_tracelog.svclog"
     type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
     name="ServiceModelTraceListener" traceOutputOptions="Timestamp"/>
 </sharedListeners>
 </system.diagnostics>

может ли кто-нибудь определить проблему, у меня есть эти настройки и выключается тысячу раз..

  request.KeepAlive = false;
  System.Net.ServicePointManager.Expect100Continue = false;

Карл

2 ответов


сначала попробуйте загрузить страницу в виде строки, а затем передать ее в HtmlAgilityPack. Это позволит вам изолировать ошибки, которые происходят во время процесса загрузки от тех, которые происходят во время процесса синтаксического анализа html. Если у вас есть проблема с proxybonanza (см. Конец сообщения), Вы сможете изолировать эту проблему от проблемы конфигурации HtmlAgilityPack.

Страница загрузки с помощью WebClient:

// Download page
System.Net.WebClient client = new System.Net.WebClient();
client.Proxy = new System.Net.WebProxy("{proxy address and port}");
string html = client.DownloadString("http://example.com");

// Process result
HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
htmlDoc.LoadHtml(html);

Если вы хотите больше контроля над просьбой, использовать


похоже, что ваш веб-хост отключил исходящие соединения от ASP.NET приложения для обеспечения безопасности, поскольку это позволит другим скриптам / приложениям выполнять вредоносные атаки со своих серверов.

вам придется попросить их разблокировать соединения на вашем аккаунте, но не удивляйтесь, если они скажут нет.