2012-06-13 55 views
4

我正在使用HSS Interlink在我的应用程序中上传下载文件。我面临的问题是,我的下载处理程序正在返回HTTPStatusCodes像500,404等,但问题是当我摆弄请求它正确显示我真的想要返回的500状态码,但在Silverlight客户端时,当我检查HttpWebResponse.Status在例外,我得到404 .. 我进一步调查这个在MSDN上,发现了一个很奇怪的言论:Silverlight WebClient和HTTP状态代码

唯一的状态代码值返回的HTTP和HTTPS模式 是OK和NOTFOUND。

http://msdn.microsoft.com/en-us/library/system.net.httpstatuscode%28v=vs.95%29.aspx

是否有任何人可以提供一些线索这光?这是否意味着silverlight webClient只能有OK和NotFound状态作为响应?

+0

http://stackoverflow.com/questions/10844904/server-side-exception-handling-in-silverlight这是非常接近我的问题 –

回答

4

找到了一个答案.. silverlight需要注册url方案,它可以处理传入的httpstatus代码。

bool httpResult = WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp); 
bool httpsResult = WebRequest.RegisterPrefix("https://", WebRequestCreator.ClientHttp); 

我确定这不是RegisterPrefix的唯一用途。我想其他人帮助我了解什么是它的潜在用途..

编辑:

Silverlight提供两种模式以http栈工作。一个是默认使用的browserStack。所有cookies和auth头文件都由浏览器处理,但不会发送任何状态码返回给silverlight客户端。在另一方面

ClientHttp栈为您提供了获取状态码和其他异常的详细信息,但它需要你自己来管理一切,包括饼干,标题等

问候。