我正在为我的 silverlight 应用程序使用 WCF REST 服务。当我抛出错误代码为 500 的 webfault 异常时。银灯显示错误消息:'Error:404 File not found'。我做了一些研究,发现这是浏览器的问题,即浏览器堆栈只能将两个响应代码 200 和 404 传递给这里的任何插件,在我的例子中,它是 silverlight。这意味着当服务器端出现网络故障异常时,SL 只会显示消息“找不到文件”。我希望将错误消息传递给客户端。一种这样的解决方案是传递响应代码 200 并将错误消息发送到附加到类似这样逻辑的返回对象的客户端。我想知道是否还有其他可能,这样我就不必改变我的班级结构。我还从服务器返回 JSON 对象。我基本上需要 SilverLight 来获取 200 和 400 系列以外的响应代码。
问问题
332 次
1 回答
1
Microsoft在发布 Silverlight 3 时为您添加了一个单独的 HTTP 堆栈。
指定 HTTP 堆栈很容易。您只需调用 WebRequest.RegisterPrefix 方法,传递 ClientHttp 对象以指定客户端 HTTP 处理或传递 BrowserHttp 对象以指定浏览器 HTTP 处理。您在发出任何 Web 请求之前执行此操作。
与旧堆栈相比,新堆栈的限制更少,因为它可以处理更多 HTTP 方法,并且可以处理任何 HTTP 返回代码。有关更广泛的比较,请参阅链接博客文章中的图表。
于 2012-06-01T05:40:02.870 回答