我有一个 asmx 服务和一个引发肥皂异常的方法。问题是当发生异常时,我得到以下错误字符串。
<faultstring>System.Web.Services.Protocols.SoapException: Error occurred at CustomServices.Application.TestService.ThrowSoapException(XmlNode ErrorNode) at CustomServices.Application.TestService.MyMethod(String param1, String param2, String param3)</faultstring>
但我想要的只是我传递给 SoapException 构造函数“发生错误”的字符串。像这样的东西
<faultstring>Fault occurred</faultstring>
现在可以使用的一个选项是我可以将自定义错误模式设置为 On 并且它只显示短消息,但是我想知道是否有任何其他方法可以做到这一点并在代码本身中阻止它而不是改变配置文件的自定义模式。以下是我抛出肥皂异常的代码
public void WebServiceExceptionHandler(XmlNode node)
{
System.Xml.XmlDocument Xmldoc;
System.Xml.XmlNode xmlNode;
try
{
Xmldoc = new System.Xml.XmlDocument();
xmlNode= doc.CreateNode(XmlNodeType.Element, SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace);
//my detaild error node to be displayed.
XmlNode errorNode= Xmldoc.ImportNode(node, true);
xmlNode.AppendChild(errorNode);
//Throw the exception.
SoapException se = new SoapException("Error Occurred", SoapException.ServerFaultCode, Context.Request.Url.AbsoluteUri, xmlNode);
throw se;
}
我没有看到任何可以将故障字符串限制为我发送的错误的东西,而不是向其中添加堆栈跟踪信息。有人可以帮我解决这个问题。我尝试更改soapException 类的构造函数以仅传递错误消息和故障代码,但这似乎无济于事。