2010-12-06 4 views
2

Ich erstelle einen Webservice-Client. Und ich habe das Problem - in MainWindow.xaml gibt es eine Nachricht: 'Konnte nicht finden, Endpunkt-Element mit dem Namen' LightsWSSoap 'und Vertrag' LightsWS.LightsWSSoap 'im ServiceModel Client-Konfiguration Abschnitt. Dies liegt möglicherweise daran, dass keine Konfigurationsdatei für Ihre Anwendung gefunden wurde oder weil kein Endpunktelement mit diesem Namen im Clientelement gefunden wurde. ' In dieser Datei habe ich so etwas wie:C# WebService-Endpunktproblem

xmlns:vm="clr-namespace:LightsClient2.ViewModels" 
<Window.DataContext> 
    <vm:MainWindowViewModel /> 
</Window.DataContext> 

Und im MainWindowViewModel der Konstruktor von Webservice verwendet wird:

LightsWSSoap lService = new LightsWSSoapClient("LightsWSSoap"); 

Wo LightsWS 'der Name des Dienstes ist.

Es gibt eine app.config-Datei und es gibt enpoints Definitionen darin:

<client> 
     <endpoint address="http://xxx/Lights/LightsWS.asmx" 
      binding="basicHttpBinding" bindingConfiguration="LightsWSSoap" 
      contract="LightsWS.LightsWSSoap" name="LightsWSSoap" /> 
     <endpoint address="http://xxx/Lights/LightsWS.asmx" 
      binding="customBinding" bindingConfiguration="LightsWSSoap12" 
      contract="LightsWS.LightsWSSoap" name="LightsWSSoap12" /> 
    </client> 

Was ist falsch? Irgendwelche Ideen?

+0

Ist 'LightsWS.LightsWSSoap' - Schnittstelle? (Sollte es sein) Wenn ja, warum fängt es nicht mit I an ('LightsWS.ILightsWSSoap'). Welchen Endpunkttyp möchten Sie verwenden? basicHttpBinding oder customBinding? –

+0

Dies ist eine Schnittstelle und wurde automatisch von VS generiert; im Moment ist es einfach – rideronthestorm

+0

Haben Sie Ihr Problem schon gelöst? –

Antwort

4

Sie müssen Ihren Clientendpunkt in der App.Config-Datei in Ihrer WPF-Anwendung konfigurieren.

Wenn es noch keine App.Config-Datei gibt, können Sie eine erstellen, indem Sie Ihrem Projekt ein neues Element hinzufügen und "Anwendungskonfigurationsdatei" auswählen.

Der Inhalt App.Config sollte wie folgt aussehen:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
    <client> 
     <endpoint binding="wsHttpBinding" contract="LightsWS.LightsWSSoap" name="LightsWSSoap" /> 
    </client> 
    </system.serviceModel> 
</configuration> 

Es gibt viel detailliertere Informationen über MSDN - http://msdn.microsoft.com/en-us/library/ms731745%28VS.90%29.aspx.

2

Sie sollten die Datei app.config mit der Definition Ihres Endpunkts hinzufügen. Normalerweise wird es von Visual Studio erstellt. Wenn Sie jedoch Ihre ServiceReference in einer anderen Assembly erstellt haben (z. B. eine separate DLL), kopieren Sie einfach app.config von dieser Assembly in Ihre WpfApplication.