22

几分钟前,我在 Visual Studio 2010 中处理一个项目,突然我的电脑重新启动。
重新启动后,在本地计算机上浏览该网站时出现以下错误:

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

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

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

我的网站名称是:MyWebSite
我在 MyWebSite 正在使用它的远程服务器(vps)上有一个 Web 服务,并且该错误与它有关。

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。
我在代码隐藏中使用该网络服务,如下所示:

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

我删除了该 Web 服务并再次添加它,但仍然有该错误!
那有什么问题呢?

提前致谢

4

2 回答 2

46

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

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

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

System.Net.ServicePointManager.Expect100Continue = false;

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

<system.net>
    <settings>
        <servicePointManager expect100Continue="false" />
    </settings>
</system.net>
于 2012-06-25T23:51:53.940 回答
0

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

<system.net>
    <defaultProxy useDefaultCredentials="true" >
    </defaultProxy>
</system.net>
于 2016-03-07T06:01:11.147 回答