石鹸の例外に問題があります。私はasp.net Webサービスでsoap例外をスローしており、次のようにブラウザに表示するために何らかの方法でその例外を(xmlの形式で)取得する必要があります:
SOAP 1.1
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<soap:Fault><faultcode>soap:Client</faultcode>
<faultstring></faultstring>
<detail>
<Error>
<ErrorNumber>1</ErrorNumber>
<ErrorMessage>Error...</ErrorMessage>
</Error>
</detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Web サービスから例外をスローしています:
XmlDocument doc = new XmlDocument();
XmlNode detailNode = doc.CreateNode(XmlNodeType.Element, SoapException.DetailElementName.Name, SoapException.DetailElementName.Namespace);
XmlElement details = doc.CreateElement("Error");
XmlElement detailchild1 = doc.CreateElement("ErrorNumber");
detailchild1.InnerText = "1";
XmlElement detailchild2 = doc.CreateElement("ErrorMessage");
detailchild2.InnerText = "Error...";
details.AppendChild(detailchild1);
details.AppendChild(detailchild2);
detailNode.AppendChild(details);
throw new SoapException("Fault", SoapException.ClientFaultCode, "", details);
そのサービスを呼び出すWindowsアプリケーションでテストすると、例外をキャッチしてすべての詳細を抽出できるため、xmlの作成と例外のスローですべてが機能するようです。しかし、ブラウザから取得しているのは内部エラー500だけです。これは、他の回答によると、通常の動作を見つけたものです。おそらくweb.config、IIS設定を変更することにより、内部エラー500の代わりにブラウザでそのxmlを取得できますか...