Подтвердить что ты не робот

Ошибка запроса с состоянием HTTP 417: Ошибка ожидания - использование веб-служб

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

Ошибка запроса с состоянием HTTP 417: Ошибка ожидания.

Описание: Необработанное исключение произошло во время выполнения текущий веб-запрос. Просмотрите трассировку стека информацию об ошибке и где она возникла в коде.

Сведения об исключении: System.Net.WebException: запрос не выполнен Статус HTTP 417: Ошибка ожидания.

мое имя веб-сайта: MyWebSite
У меня есть веб-сервис на удаленном сервере (vps), который MyWebSite использует, и эта ошибка связана с ним.

Line 172:        [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/MyWebSiteEnable", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
Line 173:        public bool MyWebSiteEnable() {
Line 174:            object[] results = this.Invoke("MyWebSiteEnable", new object[0]);
Line 175:            return ((bool)(results[0]));
Line 176:        }

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

private void CheckForPageExpiration()
{
    MyService service = new MyService();
    if (service.MyWebSiteEnable())
    {
    }
    else
    {
        Response.Redirect("~/blank.aspx");
    }
}

я удалил эту веб-службу и добавлю ее снова, но все еще имею эту ошибку!
что в этом плохого?

заблаговременно

4b9b3361

Ответ 1

Это говорит о том, что проблема заключается в прокси-сервере, который не поддерживает ответ 100-continue с сервера и показывает код для разрешения Это. Это объясняет, почему он работает в другой сети.

Поскольку вы вряд ли убедите своего интернет-провайдера изменить свою практику (в противном случае никакого вреда в запросе), вы должны отключить поведение отправки 100-Continue по следующей ссылке:

Поместите этот код перед веб-запросом:

System.Net.ServicePointManager.Expect100Continue = false;

Или добавив следующие строки в файл конфигурации приложений как дочерний элемент тега <configuration>:

<system.net>
    <settings>
        <servicePointManager expect100Continue="false" />
    </settings>
</system.net>

Ответ 2

Добавьте строку кода в свой файл конфигурации.

<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>