Forum: PC-Programmierung Visual Studio 2008 "No endpoint" Fehler


von Thomas S. (thomasschattat)


Lesenswert?

Hallo,
bin echter Neuling mit C# und mache gerade erste Versuche um ein 
spezielles Problem anzupacken.
Mit Visual C# 2008 habe ich eine ConsoleApplication geschrieben und eine 
bestimmte Service Reference eingebunden, das klappt. Alles ist aus einem 
Beispiel PDF wie dieser Service angesprochen werden kann, trotzdem komm 
ich nicht so richtig zum Ziel.
Es wird in der Main Funktion diese Klasse instanziiert:

PollingCLSAPIEventsContract3Client()

Das klappt auch. Es werden danach wie im PDF die einzelnen Properties 
definiert.
Dann registriere ich mich als Event Listener so:

EventsResult result = proxy.Subscribe(out userToken, filter);

Es kompiliert ohne Fehler. Wenn ich es dann ausführe so bekomme ich 
folgenden Fehler, im Debug bleibt es beim new Befehl der o. a. Klasse 
stehen mit diesem Fehler:

Could not find endpoint element with name 
'BasicHttpBinding_ICLSAPIEventsContract3' and contract 
'CLSAPIEvents3Service.IPollingCLSAPIEventsContract3' in the ServiceModel 
client configuration section. This might be because no configuration 
file was found for your application, or because no endpoint element 
matching this name could be found in the client element.

Ich verstehe es so, dass ich einen Event Handler brauche und diesen noch 
nicht angelegt habe. Kann das sein? Oder was heißt dieser Fehler sonst?
Oder muss ich da im Config File noch etwas herumeditieren? Und was??

Bin für eine kurze Hilfe dankbar.

Thomas

von bluppdidupp (Gast)


Lesenswert?

Er will dann wohl scheinbar die Proxy-Klasse 
("PollingCLSAPIEventsContract3Client") für den Webservice instantiieren, 
findet aber in der app.config (*) keine Information darüber unter 
welcher URL (Endpoint) er den Webservice denn finden könnte.

("PollingCLSAPIEventsContract3Client" hat vermutlich noch andere 
Konstruktoren, wo Binding+Endpoint auch "manuell" via Code übergeben 
werden könnte.)

(*) oder web.config falls es eine asp.net Seite ist.

Der Kram in der app.config sieht üblicherweise so ähnlich aus (und wird 
auch eigentlich automatisch beim Einbinden einer Service-Referenz 
passend generiert):
1
<system.serviceModel>
2
    <bindings>
3
      <basicHttpBinding>
4
        <binding name="beispiel" />
5
      </basicHttpBinding>
6
    </bindings>
7
    <client>
8
      <endpoint address="http://meinetolleapi.example.org/api.asmx" binding="basicHttpBinding"
9
        bindingConfiguration="beispiel" contract="einnamespace.beispiel" name="beispiel" />
10
    </client>
11
  </system.serviceModel>

von Thomas S. (thomasschattat)


Lesenswert?

Hallo,
ist mir alles sehr nebulös. Ich werde da mal weiter forschen..

Gruß
Thomas

von Thomas S. (thomasschattat)


Lesenswert?

So, etwas weiter nun.
Der Fehler ist immer noch der:
Could not find endpoint element with name 
'BasicHttpBinding_ICLSAPIEventsContract3' and contract 
'CLSAPIEvents3Service.IPollingCLSAPIEventsContract3' in the ServiceModel 
client configuration section. This might be because no configuration 
file was found for your application, or because no endpoint element 
matching this name could be found in the client element.

Hab nun in meiner app.config mal unter client den zweiten endpoint 
ergänzt:

<client>
    <endpoint address="http://fujitsu:8002/CLSAPIEvents3"; 
binding="basicHttpBinding" 
bindingConfiguration="BasicHttpBinding_IPollingCLSAPIEventsCont 
contract="CLSAPIEvents3Service.IPollingCLSAPIEventsContract3"
name="BasicHttpBinding_IPollingCLSAPIEventsContract3" />

//diesen hab ich nun manuell hinzugefügt:

<endpoint address="http://fujitsu:8000/ICLSAPIEventsContract3"; 
binding="basicHttpBinding" 
bindingConfiguration="BasicHttpBinding_IPollingCLSAPIEventsContract3"
contract="CLSAPIEvents3Service.IPollingCLSAPIEventsContract3"
name="ICLSAPIEventsContract3" />
</client>

Er findet es nicht im client element, ist das in der app.config oder im 
C# Codeteil? Manuell hinzufügen ist ja Mist, hab ich da nen Fehler 
gemacht?

Gruß
Thomas

von bluppdidupp (Gast)


Lesenswert?

Manuell ginge vermutlich so:
1
BasicHttpBinding binding = new BasicHttpBinding();
2
binding.MaxReceivedMessageSize = Int32.MaxValue; // falls große Datenmengen drüber geschaufelt werden
3
4
EndpointAddress ep = new EndpointAddress("http://fujitsu:8000/ICLSAPIEventsContract3");
5
PollingCLSAPIEventsContract3Client client = new PollingCLSAPIEventsContract3Client(binding, ep);
...wie man herausfindet, welche Einträge er wohl konkret in der config 
erwartet weiß ich leider nicht - Bei mir wurden die bislang immer direkt 
korrekt erzeugt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.