URL bei Webservice mit SoapReceivers



  • Wenn man ein Webservice-Projekt erstellt, kann man den Webservice ja im Broswer per URL ansprechen, z.B. http://localhost:12345/MyService.asmx. In diesem Fall sieht man im Browser dann eine Auflistung aller Funktionen, die man von dort aus auch ausführen lassen kann.

    Wie macht man das aber, wenn man einen Webservice nicht per Webservice-Projekt, sondern als ASMX-Datei in einer simplen Konsolenanwendung folgendermaßen zur Verfügung stellt?

    using System;
    using System.Net;
    using Microsoft.Web.Services3.Addressing;
    using Microsoft.Web.Services3.Messaging;
    
    static class Program
    {
        static void Main()
        {
            EndpointReference endpointReference = new EndpointReference(
                new Uri("urn:MyService"),
                new UriBuilder("soap.tcp", IPAddress.Any.ToString(), 12345).Uri);
    
            SoapReceivers.Add(endpointReference, typeof(MyService));
    
            Console.WriteLine("Das Serviceprogramm wurde gestartet.");
            Console.ReadLine();
    
            SoapReceivers.Clear();
        }
    }
    

    Ich weiß, wie man diesen Webservice innerhalb von C# anspricht. Aber wie kann ich hier zum Beispiel mithilfe eines simplen Browseraufrufs die zum Webservice gehörigen Funktionen anzeigen lassen? Wie würde in diesem Fall die URL lauten?

    In der Proxyklasse des Webservices wird die Destination ja folgendermaßen erstellt:

    public class MyService : WebServicesClientProtocol
    {
        public MyService(string url) // url --> soap.tcp://localhost:12345/MyService
        {
            Destination = new EndpointReference(new Uri("urn:MyService"), new Uri(url));
        }
    
        // ...
    }
    

    Und ich müsste nun wissen, wie die allgemeine URL lautet, die man auch ohne .NET-Funktionen benutzen kann, wenn man auf diesem Webservice zugreifen will.


Anmelden zum Antworten