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

时间:2012-01-04 00:25:23

标签: silverlight httpwebrequest

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

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

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

我看不出为什么会发生这种情况的原因,Silverlight中的HttpWebRequest上没有Timeout属性,所以我无法理解为什么请求不会无限期地等待响应。

我有什么问题吗?

1 个答案:

答案 0 :(得分:0)

经过多一点测试后发现回调在10秒内被解雇。原来这是由注册表项引起的

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

安装IE9 64bit似乎是罪魁祸首,以及修改此值的其他一些应用程序。解决方案只是删除此注册表项,一切都很顺利。

此处还介绍了此问题Silverlight ClientHttp WebRequest timeout