请求失败,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");
}
}
我删除了该网络服务并重新添加,但仍然有错误!
这有什么不对?
提前致谢
答案 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>