【问题标题】:In .NET web services, how can the SoapException.Message property be easily readable?在 .NET Web 服务中,SoapException.Message 属性如何易于阅读?
【发布时间】:2011-04-17 01:24:00
【问题描述】:

我正在编写一个 ASP.NET Web 服务并抛出一个带有消息的 SoapException:

throw new SoapException("BANG!", SoapException.ClientFaultCode);

当我创建一个 ASP.NET 客户端并请求一个标签以显示 SoapException.Message 属性时,它会显示类似于以下内容的消息:

System.Web.Services.Protocols.SoapException:砰!在 [DIRECTORY]\WebService1.asmx.cs:line 23 中的 WebServiceException.WebService1.HelloWorld() 处

有没有一种简单的方法可以简单地显示消息 BANG!而不是整个字符串?还是我应该只使用正则表达式?

【问题讨论】:

  • 你确定你在调用 exception.Message 属性吗?输出看起来像是来自 exception.ToString() 如果您仅将异常对象实例传递给要显示的 label.Text,这将是默认操作。

标签: c# asp.net web-services exception


【解决方案1】:

如果您将 Web 服务配置为打开自定义错误消息,则堆栈跟踪将不会出现在 SOAP 错误中,这反过来意味着您的客户端将看不到它。

在 web.config 中:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    ...
    <system.web>
        ...
        <customErrors mode="On"/>
        ...
    </system.web>
    ...
</configuration>

【讨论】:

  • msdn link 提到了 customErrors xml 标签。 On 设置告诉 ASP.NET 不要将堆栈跟踪信息添加到任何故障中。
猜你喜欢
  • 1970-01-01
  • 2016-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多