如何在C#Web服务中抛出自定义异常,以便flex读取错误错误?
我试过像这样抛出一个异常
throw new Exception("invalid key");
但是FaultEvent无法解析flex中的消息。
编辑:我真正想要做的是让flex来区分Web服务中的异常,例如知道异常是数据库连接错误还是标头错误中的无效密钥
答案 0 :(得分:2)
不确定,但这可能会有所帮助;杰夫阿特伍德说.NET doesnt throw very good SOAP exceptions。
答案 1 :(得分:1)
您需要以某种方式使.net网络服务器返回正常的soap异常响应,但使用HTTP代码200而不是500(标准)。这是因为当服务器以500响应时,浏览器会在向Flash Player插件提供详细信息之前删除所有有用的信息。在Java上,您可以使用过滤器来执行此操作,但我不确定如何在.net中执行此操作
答案 2 :(得分:1)
在.net webserver中,您可以定义自己的SoapExtention类并覆盖ProcessMessage函数,在“SoapMessageStage.BeforeSerialize”阶段,您可以使用以下代码来更改http状态代码:
HttpContext currrentContext = HttpContext.Current;
currrentContext.Response.StatusCode = 200;
麦克