2012-01-04 78 views
3

我试图从Silverlight 4中使用ClientHttp Stack调用浏览器应用程序中的Restful服务。Silverlight HttpWebRequest在Webservice响应之前抛出404 Not Found异常

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

我打电话服务需要高达20秒收到请求后做出回应,但似乎回调方法大约10秒后发射。我可以在Fiddler中看到,该服务最终在200个响应代码总共30秒后完成请求,但HttpWebRequest回调已收到404 Not Found响应。

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

有什么我做错了吗?

回答

0

经过多一点测试,结果发现回调在10秒内被触发。原来,由注册表项

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

安装IE9 64位,似乎是罪魁祸首,以及该修改这个值一些其他应用程序引起的。解决方案只是简单地删除这个注册表项,一切都很好。

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