2009-03-12 8 views

Antwort

0

Ich bin ein ziemlich Anfänger in diesem Feld. Ich versuche, diesen Code als exersice zu implementieren. Ich möchte einen Soapfilter erstellen, der ausgeführt wird, wenn eine Soap Message ankommt. Ich habe Probleme mit der Politik XML

using Microsoft.Web.Services3; 
using Microsoft.Web.Services3.Design; 


namespace WebService1 
{ 
    /// <summary> 
    /// Summary description for Service1 
    /// </summary> 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [ToolboxItem(false)] 
    public class Service1 : System.Web.Services.WebService 
    { 

    [WebMethod] 
    public string HelloWorld(string s) 
    { 
     return "Hello World" +s ; 
    } 
} 

public class ValidationFilter : SoapFilter 
{ 
    string authCode; 

    public ValidationFilter(string authCode) 
    { 
     this.authCode = authCode; 
    } 

    public override SoapFilterResult ProcessMessage(
     SoapEnvelope envelope) 
    { 
     XmlReaderSettings settings = new XmlReaderSettings(); 

     XmlElement elmRoot = envelope.DocumentElement; 
     XmlElement elmNew = envelope.CreateElement("title1234"); 
     elmNew.InnerXml = "blablabla"; 
     elmRoot.AppendChild(elmNew); 


     return SoapFilterResult.Continue; 
    } 
} 

public class traceAssertion : PolicyAssertion 
{ 
    public static readonly XmlQualifiedName BeNiceQName = new 
     XmlQualifiedName("traceAssertion", "http://schemas.cohowinery.com/wsbn"); 



    public override SoapFilter CreateClientInputFilter(FilterCreationContext context) 
    { 
     return new ValidationFilter("FFFF"); 
    } 

    public override SoapFilter CreateClientOutputFilter(FilterCreationContext context) 
    { 
     return new ValidationFilter("FFFF"); 
    } 

    public override SoapFilter CreateServiceInputFilter(FilterCreationContext context) 
    { 
     return new ValidationFilter("FFFF"); 
    } 

    public override SoapFilter CreateServiceOutputFilter(FilterCreationContext context) 
    { 
     return new ValidationFilter("FFFF"); 
    } 

} 

}

0

Meinten Sie WSE oder WCF? Ich habe bemerkt, dass du die Frage ".net3.5" getaggt hast, was auf "wcf" hindeutet.

WSE3, OTOH, ist ein veraltetes Framework basierend auf .NET 2.0 ASMX-Technologie, die selbst fast veraltet ist.

Dies spiegelt sich nicht in Ihrer Frage wider: Wenn Sie keine andere Wahl haben, als WSE zu verwenden, haben Sie keine andere Wahl. Ich will nur klarstellen, wonach Sie fragen (und stellen Sie sicher, dass Sie wissen, dass WSE veraltet ist; nicht jeder, der es verwendet, weiß das).