Pracuję nad utworzeniem usług WCF, które będą działały niezależnie od klientów .Net. Dzięki Google i StackOverflow udało mi się stworzyć zarówno proste usługi xml, jak i json, bez pakowania Soap i mnóstwa fantazyjnych produktów WCF, których po prostu nie potrzebuję. To było bolesne doświadczenie, stąd temat tej kwestii. WCF to szalony buggy po stronie klienta podczas korzystania z WebGet i WebInvoke przy automatycznym dodawaniu referencji do usługi.Klient WCF (Add Service Reference) nienawidzi WebGet i WebInvoke ... naprawdę, robi to
Aby sprawdzić komunikację, tworzyłem klienta WCF lokalnie i przekazując wszystko przez Fiddler. W ten sposób, niezależnie od tego, czy działa, czy nie, mogę przynajmniej zobaczyć, co klient próbuje wysłać. A kiedy w końcu zadziała, widzę dane wysyłane z obu końców, a następnie duplikuję tę komunikację w kliencie innym niż .Net.
Mój obecny problem polega na tym, że gdy zmieniam usługę, aby oczekiwać danych POST jako json (zachowanie enableWebScript), klient nie ma pojęcia, i nadal próbuje wysłać obiekty jako xml. Miałem mnóstwo problemów z konfiguracją klienta, która nie była automatycznie ustawiana poprawnie podczas korzystania z Add Service Reference, więc mam nadzieję, że jest to coś prostego, co mogę dodać do app.config na kliencie. Używając XML, obiekty, które tworzę i wykorzystuję w usłudze, są automatycznie xml serializowane przez klienta (co jest najwygodniejsze). Czy jest to możliwe nawet w jsonie w bieżącej wersji WCF?
Należy zauważyć, że udało mi się wymyślić, co muszę zrobić ręcznie i zmusić go do pracy w surowej formie z Fiddler (konstruktor żądań), dzięki czemu mogę serializować moje obiekty w kodzie i wysyłać dane ręcznie przez http post ... tak to robię w moich klientach spoza sieci. Jest to raczej pytanie, aby lepiej zrozumieć aspekty WCF i dlaczego brakuje mi tak wielu atrybutów po stronie klienta, w których nie ma zbyt wiele dokumentacji, aby rozwiązać problemy.
Mężczyzna .. Chciałbym przeczytać to wcześniej. Przeszliśmy przez dokładnie ten sam proces myślenia. Spodziewałem się, że klient REST "po prostu działa" tak, jak robi to klient SOAP. –
Czy jesteś związany z WCF lub masz opcję technologii ładowania serwera/usługi? Odkąd opublikowałem to ponad dwa lata temu, opierałem się używaniu WCF do czegokolwiek. Każda usługa, którą tworzę lub spożyję ręcznie, tworzy lekkie dane xml i/lub json, a także wdrażam własne zabezpieczenia i wszystko inne, co WCF próbował uczynić wygodniejszym dla deweloperów. Wydaje mi się, że praktycznie niemożliwe jest znalezienie popularnego publicznego interfejsu API ujawnionego jako usługa WCF. – Rich
Nie, nie jesteśmy związani z WCF, ale myślę, że moglibyśmy wypróbować go dla jednej z naszych usług. Budowanie komponentów po stronie serwera przy użyciu WCF było bolesne, dopóki nie zrozumieliśmy wszystkiego. Chociaż ... fajnie było nie budować punktów końcowych ręcznie (mamy działające SOAP/REST/JSON).Teraz zdaję sobie sprawę, że użyjemy SOAP, jeśli używamy klienta .NET i niech inni wykorzystają REST/JSON. –