Silverlight HttpWebRequest 在 Webservice 响应之前抛出 404 Not Found 异常

zhujiabin 阅读:39 2025-06-02 22:19:02 评论:0

我正在尝试使用 ClientHttp 堆栈从 Silverlight 4 Out of browser 应用程序调用 Restful 服务。

var request = (HttpWebRequest)HttpWebRequest.Create(uri); 
request.BeginGetResponse(new AsyncCallback(ExecuteResponseCallback), state); 

我正在调用的服务在收到请求后最多需要 20 秒才能响应,但回调方法似乎在大约 10 秒后触发。我可以在 Fiddler 中看到,该服务在总计 30 秒后最终完成了带有 200 响应代码的请求,但是 HttpWebRequest 回调已经收到了 404 Not Found 响应。

我看不出发生这种情况的任何原因,Silverlight 中的 HttpWebRequest 没有超时属性,所以我不明白为什么请求不会无限期地等待响应。

我做错了什么吗?

请您参考如下方法:

经过更多的测试,结果是回调恰好在 10 秒时触发。原来是注册表项导致的

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ReceiveTimeout 

安装 IE9 64bit 似乎是罪魁祸首,还有一些其他应用程序修改了这个值。解决方案是简单地删除此注册表项,一切都很好。

这里也描述了问题Silverlight ClientHttp WebRequest timeout


标签:webService
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号