Frage

Es tut uns praktisch betteln um Hilfe hier, aber ich habe auf die oben Arbeit beauftragt worden und kann keine ausreichende Ressourcen finden, mir zu helfen. Hier die Details:

  1. Das Unternehmen verfügt über Identity-Management-Software, die eine SPML (SOAP) 'Futtermittel' von Änderungen an Benutzerpflichtige Unternehmen bietet

  2. (Wenn ich dieses Recht habe) der SPML-Treiber macht eine POST-Anforderung an eine URL auf meinem Server, der diese Änderungen

  3. sendet
  4. Wie auch immer sitzt unter der URL muss dann die gesendeten Informationen verarbeiten (XML)

Punkt 3 ist mein Bit. Ich habe keine Ahnung, was zu schreiben. Asmx? Aspx? Ashx? Commodore 64 Kassette? Anscheinend ist der SPML-Treiber benötigt eine 200-Antwort - es wird ohnehin bekommen, wenn die Verarbeitung statt keine Einnahme hat? Gibt es etwas, um es, dass ich nicht bekommen?

Jede Hilfe, Zeiger, Beratung oder Beratung ich aufgeben und ein neues Hobby bekommen, würde sehr geschätzt werden.

Danke.

EDIT ..............

Haben Sie bekam eine einfache Seife Treibers (für die Zwecke der Prüfung), die Beiträge xml zu einer aspx Seite, die dann wiederum die POST verbraucht und speichert die xml. Dank J Benjamin (unten) und http://www.eggheadcafe.com/articles/20011103.asp für den Kick-Start.

SOAP DRIVER (Arbeiten auf Seite Last)

protected void Page_Load(object sender, EventArgs e)
{    
    XmlDocument doc = new XmlDocument();
    doc.Load(MySite.FileRoot + "testing\\testxml.xml");
    HttpWebRequest req = 
    (HttpWebRequest)WebRequest.Create("http://localhost/mysite/testing/reader.aspx");
    req.ContentType = "text/xml; charset=\"utf-8\"";
    req.Method = "POST";
    req.Headers.Add("SOAPAction", "\"\"");
    Stream stm = req.GetRequestStream();
    doc.Save(stm);
    stm.Close();
    WebResponse resp = req.GetResponse();
    stm = resp.GetResponseStream();
    StreamReader r = new StreamReader(stm);
    Response.Write(r.ReadToEnd());
}

SOAP READER (liest xml geschrieben, wenn sie aufgerufen)

protected void Page_Load(object sender, EventArgs e)
{
    String Folderpath = "c:\\TestSOAP\\";
    if (!Directory.Exists(Folderpath))
    {
        Directory.CreateDirectory(Folderpath);
    }
    Response.ContentType = "text/xml";
    StreamReader reader = new StreamReader(Request.InputStream);
    String xmlData = reader.ReadToEnd();
    String FilePath = Folderpath + DateTime.Now.ToFileTimeUtc() + ".xml";
    File.WriteAllText(FilePath, xmlData);

}

Der nächste Schritt ist, um zu versuchen, den SPML-Service verbrauchen (das ist eine Java-driven Novell Typ Sache) - wenn ich irgendwelche Probleme habe, ich werde hier posten zurück !!

Danke all ..:)

War es hilfreich?

Lösung

Vielleicht Mißverständnis ich, aber das klingt ähnlich, wie ich URLs in meinem Web-Service bin Handhabung. Wir Behandlungslogik basierend auf URLs, tut die Logik, es in XML und reagiert mit dem XML-Objekt einpacken. Hier ist ein einfaches Beispiel (durch einfache, ich meine eine der wenigen, die keine Authentifizierung erfordert)

Der folgende Code gibt einfach ein XML-Objekt ein AppSetting enthält. Die XML-Antwort ist unten als auch (mit einigen Identifizierung Werten entfernt).

        [OperationContract]
    [WebInvoke(Method = "POST", UriTemplate = "External/Application/{ApplicationGUID}/APIHost/")]
    public Response GetAPIHostName(Request request, string ApplicationGUID)
    {
        Response response = new Response();
        try
        {
            APIHost apiHost = new APIHost
                                          {
                                              APIHostname = System.Configuration.ConfigurationManager.AppSettings["PlayerAPIHostname"]
                                          };
            response.ResponseBody.APIHost = apiHost;
            response.ResponseHeader.UMResponseCode = (int) UMResponseCodes.OK;
        }
        catch (GUIDNotFoundException guidEx)
        {
            response.ResponseHeader.UMResponseCode = (int)UMResponseCodes.NotFound;
            response.ResponseHeader.UMResponseCodeDetail = guidEx.Message;
        }
        catch (Exception ex)
        {
            UMMessageManager.SetExceptionDetails(request, response, ex);
            if (request != null)
                Logger.Log(HttpContext.Current, request.ToString(), ex);
            else
                Logger.Log(HttpContext.Current, "No Request!", ex);
        }
        response.ResponseHeader.HTTPResponseCode = HttpContext.Current.Response.StatusCode;
        return response;
    }

/“xmlns: xsd = "http://www.w3.org/2001/XMLSchema" xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance">        200     200                  localhost          

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top