«Сбой запроса с пустым ответом» при вызове веб-службы - PullRequest
10 голосов
/ 27 декабря 2011

При вызове веб-службы, размещенной на сервере, со страницы aspx появляется сообщение об ошибке: «Сбой запроса с пустым ответом».

код на моей странице

try {
    HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create("https://login.erp.com/rodeprovisioning/provisioning.asmx");
    request1.Accept = "text/xml";
    request1.Method = "POST";
    WebProxy proxyObject = new System.Net.WebProxy("http://10.0.0.1:8080/", true);
    request1.Proxy.Credentials = CredentialCache.DefaultCredentials;
    string sReturnValue = null;
    if (string.IsNullOrEmpty(Session["Test"])) {
        sReturnValue = callservice();
        if (sReturnValue == "Success") {
            ErrorLabel.Text = sReturnValue;
            Session["Test"] = "True";
        } else {
            ErrorLabel.Text = sReturnValue;
        }
    }

} catch (Exception ex) {

}

и в web.config

<system.net>
    <authenticationModules>
      <add type = "System.Net.DigestClient" />
      <add type = "System.Net.NegotiateClient" />
      <add type = "System.Net.KerberosClient" />
      <add type = "System.Net.NtlmClient" />
      <add type = "System.Net.BasicClient" />
    </authenticationModules>
    <connectionManagement>
      <add address = "*" maxconnection = "2" />
    </connectionManagement>
    <defaultProxy>
      <proxy usesystemdefault="True"   bypassonlocal = "True"   />
    </defaultProxy>
    <webRequestModules>
      <add prefix = "http"   type = "System.Net.HttpRequestCreator"        />
      <add prefix = "https"  type = "System.Net.HttpRequestCreator"        />
      <add prefix = "file"   type = "System.Net.FileWebRequestCreator"         />
    </webRequestModules>
  </system.net>

Это проблема с брандмауэром. Любое предложение?

Ответы [ 5 ]

25 голосов
/ 08 октября 2014

Я знаю, что это старый вопрос, но у нас было то же исключение, происходящее в одной из наших сред интеграции:

System.Net.WebException: The request failed with an empty response

Проблема заключалась в том, что при обновлении серверного оборудования мы также переключалинаши конечные точки будут использовать HTTPS.Код, который вызывал конечные точки, не был обновлен, поэтому он все еще использовал обычный HTTP.Очевидно, это исключение, которое вы получаете, когда пытаетесь вызвать службу HTTPS как HTTP.Надеюсь, что это поможет кому-то в дальнейшем.

6 голосов
/ 20 мая 2015

Я хотел бы добавить к тому, что сказал Andacious.Я звонил в веб-сервис, который был https, но когда я посмотрел на свойства объекта, который делал вызов, он фактически использовал http.Поэтому я специально установил свойство URL.

У меня есть класс interchange, который наследуется от SoapHttpClientProtocol.

interchangeWS = new InterchangeWS();
interchangeWS.Url = "https://somesite/interchange.asmx";

string x = interchangeWS.SomeMethod("someParameter");
1 голос
/ 01 мая 2018

Иногда это происходит при указании на конечную точку, которая находится под LoadBalancer, что происходит, когда вы добавляете ссылку на проект (в VisualStudio) с использованием HTTPS, затем проверяете файл app.config под дочерним элементом и смотрите, если URL-адрес конечной точки установлен на HTTP, затем обновите его вручную до HTTPS, и все будет хорошо. Надеюсь, это поможет.

0 голосов
/ 13 марта 2018

убедитесь, что служба https вместо http.Place https в файле web.config также

0 голосов
/ 19 января 2015

В клиентском app.config или web.config сначала проверьте URL-адрес веб-службы, если URL-адрес веб-службы имеет сертификат Secure Sockets Layer, затем добавьте тот же URL-адрес включения Secure Sockets Layer в app.config или web.config. Как это "https://crm.XXXX.com/webServiceName.asmx"

System.Net.WebException: запрос не выполнен с пустым ответом

...