Ошибка запроса с состоянием 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");
}
}
я удалил эту веб-службу и добавлю ее снова, но все еще имею эту ошибку!
что в этом плохого?
заблаговременно
Ответы
Ответ 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>