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
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
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
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!"
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
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!"
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
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!"