Visual Studio 2008 "No endpoint" Fehler

OP #3723028
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
Gast #3723413
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>
OP #3723660
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
Gast #3723881
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren