代码之家  ›  专栏  ›  技术社区  ›  sergiogx

如何在带有自定义消息的.NET中对Web服务引发异常?

  •  0
  • sergiogx  · 技术社区  · 16 年前

    如何在C Web服务中引发自定义异常,以便flex错误地读取错误?

    我只是想抛出这样一个例外

    throw new Exception("invalid key");
    

    但是Faultevent无法在flex中解码消息。

    编辑: 我真正想做的是让flex区分Web服务中的异常,例如知道异常是数据库连接错误还是报头错误中的无效键。

    3 回复  |  直到 16 年前
        1
  •  2
  •   zac    16 年前

    不确定,但这可能有帮助;杰夫·阿特伍德说 .NET doesnt throw very good SOAP exceptions .

        2
  •  1
  •   Sophistifunk    16 年前

    您需要以某种方式使.NET Web服务器返回一个普通的SOAP异常响应,但使用HTTP代码200而不是500(标准)。这是因为当服务器以500响应时,浏览器会在向Flash播放器插件提供详细信息之前删除所有有用的信息。在Java上,你可以用一个过滤器来做这件事,但是我不确定如何在.NET中运行它。

        3
  •  1
  •   Mike    16 年前

    在.NET Web服务器中,可以定义自己的SoapExtension类并重写ProcessMessage函数,在“SoapMessageStage.BeforeSerialize”阶段,可以使用以下代码更改HTTP状态代码:

                        HttpContext currrentContext = HttpContext.Current;
                        currrentContext.Response.StatusCode = 200;
    

    迈克