Czy mając plik *.wsdl oraz adres działającej usługi da radę obsłużyć kompleksowo webservice i na podstawie tylko tych danych zrozumieć co się dzieje? Czy bez dokumentacji ani rusz?
Mam plik, mam adres i nie wiem, czy to wystarczające dane, by w ogóle zacząć?
Zazwyczaj chyba tak, tam powinieneś mieć wszystko co potrzeba - chociaż oczywiście mając jakąś sensowną dokumentację łatwiej się pracuje. Może napisz coś więcej, pokaż co to za usługa...
TPSigning.wsdl - Podpisywanie i weryfikacja dokumentów z podpisem potwierdzonym profilem zaufanym oraz informacje o posiadaniu PZ
testowy ePUAP:
https://test.epuap.gov.pl/zp_signing_external_ws/services/TPSigning
produkcyjny ePUAP:
https://ws.epuap.gov.pl/zp_signing_external_ws/services/TPSigning
TpSigning2.wsdl - Podpisywanie dokumentów podpisem potwierdzonym profilem zaufanym z zewnętrznym interfejsem użytkownika
testowy ePUAP:
https://test.epuap.gov.pl/zp_signing2_external_ws/services/TpSigning2
produkcyjny ePUAP:
https://ws.epuap.gov.pl/zp_signing2_external_ws/services/TpSigning2
Chcę podpisać certyfikatem za pomocą webService przygotowany wcześniej dokument XML.
Ale przecież tam masz całkiem sporo informacji dodatkowych... Masz zakładkę podręczniki, dokumentacja a nawet przykładowe aplikacje. Imho dość, żeby zacząć ;)
Udało się już pewne rzeczy zrobić i faktycznie sam adres WSDL pozwala na podpięcie webservice do projektu i pracę z nim.
Mam jednak taki problem. Dorzucenie tego WSDL do Reference Service automatycznie wygenerowało aplik app.config. Na podstawie czego i jak rozpoznać, jaką należy zapewnić budowę tego pliku dla prawidłowego skonfigurowania webservice?
schemat do zapimportowania mam tutaj: http://ws.epuap.gov.pl/zp_signing_external_ws/services/TPSigning/wsdl/TPSigning.wsdl
Tworzę sobie obiekt
TPSigningClient tpSinging = new TPSigningClient();
i chcąc z niego wywołać
tpSinging.verifySignedDocument(dokument_base64_byte);
dostaję błąd: "There was an error reflecting 'WSSigningException'"
ale wydaje mi się, że problem leży i tak po stronie konfiguracji app.config, a czemu tak myślę? tpSinging po utworzeniu ma parametr endpoint = null, a dodatkowo w Chanell innerException brzmi tak: "Namespace='http://exception.ws.comarch.gov' is not supported with rpc\literal SOAP. The wrapper element has to be unqualified."
ps.
przykłady i dokumentacja są "zdawkowe", choć wykorzystywałem z nich konfiguracje i zawsze obiekt TPSigningClient ma jakiś problem.
Wyrzuciłem z webservice wszystkie linijki dotyczące obsługi exceptions (jeśli dobrze rozumiem, to coś z serializacją jest nie halo, także chwilowo deaktywowałem to):
//[System.ServiceModel.FaultContractAttribute(typeof(WOI.ePUAP.Client.Verify.WSSigningException), Action = "addDocumentToSigning", Name = "WSSigningException", Namespace = "http://exception.ws.comarch.gov")]
skonfigurowałem App.config, tak jak pozostałe przykladowe aplikacje wrzucone przez producenta (bindings, security itp.) i zaczyna weryfikować dokument, odpala się ale "verifySignedDocument", ustawia obiekt "verifySignedDocumentRequest", uruchamia "verifySignedDocumentRequest" i po kilkudziesięciu sekundach wywala z błędem: "An unsecured or incorrectly secured fault was received from the other party. See the inner FaultException for the fault code and detail.". W konsoli widzę, że dzieje się to po załadowaniu
"Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xaml\v4.0_4.0.0.0__b77a5c561934e089\System.Xaml.dll'."
O jakie zabezpieczenia może chodzić?