请求失败,HTTP状态为417:期望失败 - 使用Web服务

时间:2012-06-25 22:39:29

标签: c# asp.net web-services exception

几分钟前,我正在开发visual studio 2010中的一个项目,突然我的电脑重新启动了 重新启动后,我在本地机器上浏览该网站时收到以下错误:

  

请求失败,HTTP状态为417:期望失败。

     

描述:执行期间发生了未处理的异常   当前的网络请求。请查看堆栈跟踪了解更多信息   有关错误的信息以及它在代码中的起源。

     

异常详细信息:System.Net.WebException:请求失败   HTTP状态417:期望失败。

我的网站名称是:MyWebSite
我在远程服务器(vps)上有一个Web服务,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:        }

对于该网络服务,每件事情都可以 那么这个错误是什么?我该如何解决呢? 在该Web服务中只有一个简单的bool方法,它返回true 我在代码隐藏中使用该web服务,如下所示:

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

我删除了该网络服务并重新添加,但仍然有错误!
这有什么不对?

提前致谢

2 个答案:

答案 0 :(得分:44)

This表明问题是代理服务器不支持来自服务器的100-continue响应,并显示解析它的代码。这可以解释为什么它可以在另一个网络上运行。

由于您不太可能说服您的ISP改变他们的做法(虽然请求中没有任何损害),您应该关闭发送100-Continue的行为,如链接所示:

将此代码放在网络请求之前:

System.Net.ServicePointManager.Expect100Continue = false;

或者,将以下行作为<configuration>标记的子项添加到应用程序配置文件中:

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

答案 1 :(得分:0)

在配置文件中添加以下代码行。

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