有没有人知道是否有可能发现Silverlight中WCF调用的响应导致302(临时重定向)。
生成302是因为我们的服务落后于ISA并且用户会话超时。 Silverligt应用程序仍然在浏览器中加载,并且usre进行交互以进行失败的WCF调用。我可以得到一个Not Found错误但是这也报告了许多不同的问题,所以不是真正的解决方案。我想专门定位302并刷新页面以让用户重新进行身份验证。
答案 0 :(得分:1)
我遇到了类似的问题,幸运的是找到了一个解决方案:能够检索除200或404之外的Web请求的StatusCode,你应该使用
var request = WebRequestCreator.ClientHttp.Create(uri)
而不是
var request = WebRequest.Create(uri) as HttpWebRequest;
我最近在这个问题上写了一篇文章,你可以看看here。
答案 1 :(得分:0)
我正在寻找同一问题的答案,但决定不使用这种方法来解决我正在处理的问题,所以我没有适合您的解决方案,但如果您使用的是Silverlight 3 ,那么你可以解决它。我已经使用了本页底部讨论的备用Http堆栈:
这至少让我可以访问SOAP错误,但我不知道是否/如何访问HTTP 302响应,因为当我尝试这样做时,我发现Silverlight似乎实际上遵循了重定向,在那里重新发出我的SOAP请求,而不是将其报告给我的应用程序。
我开始调查的是如何使用行为改变这种情况。虽然不知道是否可行,但我对这项调查并没有太大的帮助!