Aktywne Wpisy
Reiden +52
Od czasu kiedy mocno zacząłem ćwiczyć i dbać o siebie, #!$%@?ą mnie Janusze i niektórzy członkowie rodziny, którzy nie rozumieją o co się rozchodzi. Przychodzisz do kogoś na mecz, masz już walnięte 3100 kcal tego dnia i dieta zamknięta. Prosisz o wodę, bo nie pijesz w tygodniu alkoholu. To od razu - jak to nie pijesz? Co Ci się stało? Chory jesteś? Ale pizzą się poczęstujesz? Jak to nie jesz pizzy? Przecież
i-marszi +343
Sorki za poprzednio sformatowany, a bardziej niesformatowany kod. Wrzucam jeszcze raz, z linkiem do Pastebin, Będę bardzo wdzięczny za pomoc.
Muszę skorzystać z web service'u SOAP, którego definicję dostałem w pliku *.wsdl. Korzysta on z uwierzytelniania przez HTTPS, dostałem więc certyfikat klucza publicznego X.509. Przeszedłem wszystko i myślałem, że zagra jak należy, ale dostaję błąd, o braku nasł#!$%@?ących endpointów, komunikat jak poniżej. Gdzie się potknąłem?
"System.ServiceModel.EndpointNotFoundException: There was no endpoint listening at https://example.com:8443/test/ws/Service that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details. ---> System.Net.WebException: Unable to connect to the remote server ---> System.Net.Sockets.SocketException: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond ***."
Co aktualnie zrobiłem:
1. Dostawca poprosił o zmianę endpointu do serwisu testowego, więc edytowałem je w pliku *.wsdl.
2. Dodałem referencję do usługi w Microsoft Visual Studio.
3. Po tym, mój app.config został wygenerowany jak poniżej, endpoint jest właściwy.
4. Utworzyłem nową klasę do wczytywania certyfikatu, przypisywania i wywoływania połączenia. Kod poniżej.
5. Podczas debugowania kodu, wygląda na to, że certyfikat jest odnajdywany i ładowany, ale po wywołaniu metody Service.putData(), otrzymuję timeout i błąd o braku endpointu.
Service / app.config
Kod: https://pastebin.com/K7HsFwEi
Service / Console.cs
Kod: https://pastebin.com/3xNt0KHj
Za pomoc jestem skłonny dać plusa. Dzięki!
#programowanie #programista15k #csharp
Komentarz usunięty przez autora
乁(⫑ᴥ⫒)ㄏ
masz tam .net i jego feature'y. wlacz wszystkie i sprawdz czy dziala
https://www.youtube.com/watch?v=uqBWTm5b4qw
@a-kow: to publiczny adres jakiś? Podaj mi adres na PW sprawdzę od siebie jak sięga?
@Koliat: Odezwałem się na PW.
Mówiąc inaczej: Nie podłączysz się do kluczowej usługi z dowolnego komputera - musi być on nie tylko uwierzytelniony przez certyfikat(y), ale również jego IP musi być dodane do "listy dostępowej". Może taką blokadę ma usługa z którą próbujesz się połączyć?
Przy okazji, na wszelki wypadek spytam. Czy magazyn, do którego zaimportujemy certyfikat ma tutaj znaczenie (jeśli i tak jestem w stanie go wydobyć z samej aplikacji) czy może być w dowolnym?
Jest taki obiekt jak X509Store - on powinien mieć info o magazynach certyfikatów. Dla przykładu:
string certName = "NAZWA CERTYFIKATU";
X509Store certStore = new X509Store();
certStore.Open(OpenFlags.ReadOnly);
X509Certificate2 certificate = certStore.Certificates.Find(X509FindType.FindBySubjectName, certName, false)[0];