hinzufügen eines web-service-Referenz auf eine console app
Im erstellen einer einfachen web service in einer console app. (PersonService)
das ist mein Programm.cs unter
ich versuche einen Dienst hinzufügen Referenz auf eine andere Konsole app (PersonClient)
wie kann ich dies tun?
ich versucht, indem es durch einen rechts-Klick, "Dienstverweis hinzufügen", und zeigte auf das Zitat, etc...
aber es wird nicht funktionieren.
[DataContract]
public class Person
{
[DataMember]
public string FirstName { get; set; }
[DataMember]
public string LastName { get; set; }
}
[ServiceContract]
public interface IPersonLookup
{
[OperationContract]
Person GetPerson(int identifier);
}
public class PersonService : IPersonLookup
{
public PersonService()
{
}
public Person GetPerson(int identifier)
{
Person p = new Person();
p.FirstName="Jane";
p.LastName="Doe";
return p;
}
}
class Program
{
static void Main(string[] args)
{
using (ServiceHost host = new ServiceHost(typeof(PersonService)))
{
WSHttpBinding binding = new WSHttpBinding();
host.AddServiceEndpoint(typeof(IPersonLookup), binding, "http://localhost:9090/PersonService");
host.Open();
Console.WriteLine("Listening....");
Console.ReadLine();
}
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie Lesen, über WCF-MEX-Endpunkte. Hier ist ein blog-post, die helfen können.
Lösung:
Haben Sie zwei Konsolen-EXE, die ausgeführt wird eine
ServiceHost
- ist das richtig? Führen Sie das server-Konsole ohne debugging; dann in der IDE hinzufügen von WCF-Verweis auf die url. Sollte es funktionieren, aber es muss der server (Ihre zweite Konsole exe) ausgeführt werden, wenn Sie die Abfrage der mex.Beim hinzufügen des webservice-Referenz definiert den namespace und 'class-name' für den service. Sie müssen fügen Sie entweder das namespace-Referenz ("mit FooNameSpace;") oder verwenden Sie den vollständig qualifizierten Klassen-Namen des Dienstes (der"FooNameSpace.BarClass ws = new FooNameSapce.BarClass()");
Referenz.
In dem Neuen Fenster klicken Sie auf Add Web Reference.