SoapException im .Net-Webdienst auslösen

EDIT: Ich habe hoch und niedrig nach einer Antwort darauf gesucht und niemand scheint ein ähnliches Problem zu bekommen. Es scheint mir, dass das WerfenSoapException sollte die Antwort nach Bedarf formatieren, nicht nur mit der Ausnahmemeldung. Jede Hilfe dankbar erhalten.

Ich versuche, a zurückzugebenSoapException das sollte ungefähr so ​​aussehen (Beispiel):

HTTP/1.1 500 Internal Server Error.
Date: Wed, 26 May 2004 05:12:08 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 1.1.4322
Cache-Control: private
Content-Type: text/xml; charset=utf-8
Content-Length: 488 

<?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:Server</faultcode>
     <faultstring>BlahBlahBlahBlahBlah</faultstring>
     <detail />
   </soap:Fault>

 </soap:Body>
</soap:Envelope> 

Dafür habe ich Code wie diesen implementiert, der von der MSDN-Site für stammtSoapException:

Imports System
Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel
Imports System.Xml.Serialization
Imports System.Xml

<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Service1
    Inherits System.Web.Services.WebService

    <WebMethod()>
    Public Sub Process()
        ' Build the detail element of the SOAP fault.
        Dim doc As New System.Xml.XmlDocument()
        Dim node As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            SoapException.DetailElementName.Name, _
            SoapException.DetailElementName.Namespace)

        ' Build specific details for the SoapException.
        ' Add first child of detail XML element.
        Dim details As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            "mySpecialInfo1", "http://tempuri.org/")

        ' Add second child of detail XML element with an attribute.
        Dim details2 As System.Xml.XmlNode = doc.CreateNode(XmlNodeType.Element, _
            "mySpecialInfo2", "http://tempuri.org/")
        Dim attr As XmlAttribute = doc.CreateAttribute("t", "attrName", _
            "http://tempuri.org/")
        attr.Value = "attrValue"
        details2.Attributes.Append(attr)

        ' Append the two child elements to the detail node.
        node.AppendChild(details)
        node.AppendChild(details2)

        'Throw the exception    
        Dim se As New SoapException("Fault occurred", SoapException.ClientFaultCode, _
                                    Context.Request.Url.AbsoluteUri, node)
        Throw se
        Return
    End Sub
End Class

Wenn ich dies jedoch ausführe, lautet die tatsächlich gesendete Antwort:

HTTP/1.1 500 Internal Server Error
Server: ASP.NET Development Server/10.0.0.0
Date: Wed, 03 Jul 2013 13:06:26 GMT
X-AspNet-Version: 2.0.50727
Cache-Control: private
Content-Type: text/plain; charset=utf-8
Content-Length: 233
Connection: Close

System.Web.Services.Protocols.SoapException: Fault occurred
   at MyService.Service1.Process() in C:\MyLocation\MyService\Service1.asmx.vb:line 42

Wie bekomme ich die Antwort wie folgt formatiert:

<soap:Envelope>
    <soap:Body>
        <soap:Fault>
            <faultcode/>
            <faultstring/>
            <detail/>
        </soap:Fault>
    </soap:Body>
</soap:Envelope>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage