Laden...

WCF Server Anwendung erstellen aus asmx Datei

Erstellt von kissthechief vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.194 Views
K
kissthechief Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren
WCF Server Anwendung erstellen aus asmx Datei

Hallo zusammen,

ich bin ein wenig ratlos..

Ich versuche in C# VS2012 einen Webservice zu erstellen.

Ich habe vom Kunden eine .asmx Datei bekommen.

Über svcutil.exe habe ich eine .cs und eine .config Datei erstellt...

und nun?

Wie kann ich damit weiter arbeiten, damit diese Funktionen als Webservice verfügbar gemacht werden können?

Wäre super, wenn mir da jemand ein wenig helfen könnte 😃

gruß
Andre

N
135 Beiträge seit 2006
vor 9 Jahren

Wie Du schon selber sagst, soll es ein Webservice sein.
Um einen Webservice zu hosten benötigst Du einen IIS (MS-Webserver) oder eine selbstentwickelte Anwendung die den Service bereit stellt.

Hier ein Link für die Webserver-Variante und wie man den Service aufruft.
Galileo Computing / <openbook> / Einstieg in ASP.NET 16.2 Einen einfachen Web Service erstellen und anbieten

K
kissthechief Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren

Danke für die Antwort

Ich bin mittlerweile etwas schlauer geworden, aber hänge grade noch an einer Sache..

in meinem Service

Service1.svc

habe ich das mitgelieferte Interface implementiert mit allen Methoden

bsp:

   public AddCustomerResponse AddCustomer(AddCustomerRequest request)
        {
       
           
            throw new NotImplementedException();
          
        }

Im Interface sieht das ganze so aus:

 [System.ServiceModel.OperationContractAttribute(Action="hier steht eine url", ReplyAction="*")]
    AddCustomerResponse AddCustomer(AddCustomerRequest request);

Jetzt kriege ich im Service diese Methode nicht angezeigt, weil diese im Interface ja nicht public ist..
Diese als Public zu bezeichnen ist allerdings nicht gestattet..

Ich bin mit Webservices allerdings noch nicht wirklich bewandert und komme nicht dahinter, was genau diese Zeile:

[System.ServiceModel.OperationContractAttribute(Action="hier steht eine url", ReplyAction="*")]

letztlich bewirkt.

Ein Screenshot der Ausgabe ist im Anhang zu finden..

Das komplette Interface, welches ich eingefügt habe wird nicht angezeigt.
Vlt hast du da eine kurze Erklärung oder einen Tip für mich? 😃

gruß
Andre

6.911 Beiträge seit 2009
vor 9 Jahren

Hallo kissthechief,

mittels svcutil.exe hast du eine Möglichkeit um den Client-Code für den WebService zu generieren. Ich nehme an dass du Visual Studio (VS) verwendest und somit gibt es dort eine einfachere - auf svcutil.exe im Hintergrund basierende - Möglichkeit. Klick im "Solution Explorer" mit der rechten Maus auf das Projekt und wähle dann im Kontext-Menü "Add Service Reference" (od. "Dienstverweis hinzufügen" bei deutschem VS). Der erscheinende Dialog sollte selbsterklärend sein. Auf diesem Wege generiert VS die nötigen Klassen und Konfiguration, so dass der Service (i.d.R.) direkt verwendet werden kann. Lies dich aber bitte hierzu auch in der MSDN zum Thema ein.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

K
kissthechief Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren

Hallo Gü,

das habe ich im Eingangspost schon beschrieben, dass ich die Dateien damit erstellt habe 😃

Ich habe diese in mein Projekt hinzugefügt, allerdings wird mir wie beschrieben das Interface nicht angeboten, wenn ich den Dienst starte.

Die Methoden werden nicht öffentlich angezeigt, damit ich diese nutzen kann.
Das ist der Schritt der mir noch zur endgütligen Implementierung fehlt.

gruß
Andre

6.911 Beiträge seit 2009
vor 9 Jahren

Hallo kissthechief,

im Eingangspost hab ich nur von svcutil gelesen - ist ja jetzt egal.

Hat dir das Tool keine Klasse, welche die Schnittstelle zum WebService implementiert, geniert? Die ist in der gleichen Datei enthalten. Häng diese ggf. mal hier an.

Die Methoden werden nicht öffentlich angezeigt

Welche Methoden meinst du jetzt? Beim Genieren vom Client-Code kann der Zugriffsmodifizierer bei svcutil per Flag und in VS per Option eingestellt werden. Aber ich versteh nicht ganz wo du hängst.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

K
kissthechief Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren

Hallo Gü,

die Dateien wurden erzeugt und sind dem Projekt hinzugefügt.

Das entsprechende Interface, welches ebenfalls generiert wurde ist auch generiert worden.

Das über utilsvc generierte Interfacesieht so aus:

public interface LeadImportSoap
{
    
    [System.ServiceModel.OperationContractAttribute(Action="hier steht eine url", ReplyAction="*")]
    AddCustomerResponse AddCustomer(AddCustomerRequest request);
  
.
.
.
.
}

In meinem WCD Service sieht die Implementierung so aus:

public class Service1 : IService1, LeadImportSoap
    {
     
        public AddCustomerResponse AddCustomer(AddCustomerRequest request)
        {
            throw new NotImplementedException();
        }

.
.
.
.
}

Wenn ich das Projekt über F5 debuggen lasse, geht das Fenster, welches ich weiter oben geposted habe auf und zeigt mir eben zbsp diese Methode AddCustomer nicht an.
Auf diese kann ich dann leider nicht zugreifen, weil sie nicht erreichbar ist.

Ich hoffe wir kommen dem Verständnispunkt, wo mein Problem ist damit näher 😃

gruß
Andre

6.911 Beiträge seit 2009
vor 9 Jahren

Hallo kissthechief,

die Klasse Service1 ist so nicht nötig und auch nicht ganz passend, da die Methode nichts macht außer "NotImplemented" als Fehler zu melden.

svcutil sollte auch eine Klasse geniert haben die in etwa "LeadImportSoapClient" heißen sollte. Suche mal danach. Diese Klasse verwendest du in deinem Client-Code.

Ich vermute dass das Verständnisproblem von fehlenden Grundlagen in diesem Bereich stammen. Schau dir das WCF - Getting Started Tutorial - insbesondere How to: Create a Windows Communication Foundation Client und How to: Use a Windows Communication Foundation Client an.( Beachte bitte vor weiteren Nachfragen auch [Hinweis] Wie poste ich richtig? Punkt 1.1.1.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

K
kissthechief Themenstarter:in
11 Beiträge seit 2014
vor 9 Jahren

Hallo Gü,

danke für die Hilfe.

Service läuft jetzt 😃

gruß
Andre