gpt4 book ai didi

c# - 在 wse 中使用自己的异常,而不仅仅是 SoapException

转载 作者:行者123 更新时间:2023-11-30 12:54:13 25 4
gpt4 key购买 nike

是否可以使用 http.sys 将我自己开发的异常通过 Soap 发送到客户端??

最佳答案

不幸的是,据我所知,答案是否定的。您不能在服务器端构建自己的自定义异常并期望通过 WSE 在客户端使用它们。我不能给出太多关于原因的技术背景(比如为什么 WSE 不允许这样做),但我对我的答案很确定,因为我对此进行了测试。

您可以使用提供的链接中描述的方法返回一个继承自 System.Web.Services.Protocols.SoapException 的自定义异常,但是您必须在客户端将异常捕获为 SoapException,因为您不会能够将其捕获为自定义异常类型:http://msdn.microsoft.com/en-us/library/ms229064.aspx

要为您自己的确认重新创建测试,请执行以下操作:

  1. 创建一个测试异常类,随意调用它并确保它遵循我在上面提供的链接中描述的模式(提供了代码示例)。
  2. 创建一个显式返回测试异常的 web 方法,如下所示:

    'This is in VB.Net
    <WebMethod()> _
    Public Function ThrowTestSoapException() As TestSoapException
    Return New TestSoapException()
    End Function
  3. 尝试重新生成客户端的 WSE 库(使用 WseWsdl3.exe),您应该会收到类似这样的错误消息:“错误:服务器不可用,请稍后再试

这是我在尝试创建自己的可转让自定义异常时所能得到的。同样,我唯一能做的就是返回一个继承自 SoapException 类的自定义异常,并在客户端将其作为 SoapException 捕获。这与“CheGueVerra”指出的链接中描述的方法相同 above .

回应 John Saunders 的上述评论:是的,如果可能转移到 WCF,WSE 确实已经过时了。因为这对我和其他提出这些问题的人来说都是相关的工作,所以从 WSE 到 WCF 的转变需要管理层的批准——所以我们中的一些人不能轻易地做出这些改变——即使我们非常想这样做。

关于c# - 在 wse 中使用自己的异常,而不仅仅是 SoapException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/138477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com