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

Sil*_*ght 22 c# asp.net web-services exception

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

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

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息: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:        }
Run Code Online (Sandbox Code Playgroud)

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

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

我删除了该Web服务并再次添加,但仍然有错误!
这有什么不对?

提前致谢

Mic*_*ael 45

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

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

将此代码放在Web请求之前:

System.Net.ServicePointManager.Expect100Continue = false;
Run Code Online (Sandbox Code Playgroud)

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

<system.net>
    <settings>
        <servicePointManager expect100Continue="false" />
    </settings>
</system.net>
Run Code Online (Sandbox Code Playgroud)

  • 我测试它,这就是问题所在.我知道这个问题适合我的isp.但我应该告诉他们修复什么? (3认同)