SQL Server 2025 CU6 - dlaczego sp_invoke_external_rest_endpoint kończy się błędem HRESULT 0x80072F0C tylko dla konkretnego hosta HTTPS?

Grzegorz Nowakowski 0 Punkty reputacji
2026-06-30T08:59:53.8633333+00:00

Produkt

Microsoft SQL Server 2025 Standard Developer Edition Wersja: 17.0.4055.5 (RTM-CU6) Windows Server 2025 Standard Evaluation, kompilacja 26100

Opis problemu

Występuje problem z procedurą sp_invoke_external_rest_endpoint.

Procedura poprawnie komunikuje się z kilkoma endpointami HTTPS, w tym z endpointami uwierzytelniania oraz z innym środowiskiem tej samej aplikacji, ale konsekwentnie kończy się błędem podczas łączenia z jednym konkretnym hostem HTTPS.

Błąd występuje zanim zostanie zwrócona jakakolwiek odpowiedź HTTP.

Błąd SQL Server:

Msg 31608, Level 16, State 24 Wystąpił błąd, nie udało się skomunikować z zewnętrznym endpointem REST. HRESULT: 0x80072F0C

Odtworzenie problemu

Problem można odtworzyć za pomocą poniższego minimalnego przykładu:

DECLARE @Response nvarchar(max);
EXEC msdb.dbo.sp_invoke_external_rest_endpoint @url = N'https://polon2.opi.org.pl/', @method = N'GET', @response = @Response OUTPUT;
SELECT @Response;

Wynik:

Msg 31608, Level 16, State 24 An error occurred, failed to communicate with the external rest endpoint. HRESULT: 0x80072F0C

Ten sam błąd występuje niezależnie od:

  • nagłówków,
  • autoryzacji,
  • payloadu,
  • endpointu,
  • ścieżki.

Na przykład wszystkie poniższe adresy URL kończą się błędem:

https://polon2.opi.org.pl/ https://polon2.opi.org.pl/xyz https://polon2.opi.org.pl/employees-api/...

Środowisko

Microsoft SQL Server 2025 (RTM-CU6) 17.0.4055.5 (X64) Windows Server 2025 Standard Evaluation Kompilacja 26100

Oczekiwany rezultat

Procedura powinna nawiązać połączenie HTTPS i zwrócić odpowiedź HTTP, na przykład HTTP 301 dla „/”.

Rzeczywisty rezultat

Połączenie HTTPS kończy się niepowodzeniem, zanim zostanie odebrana odpowiedź HTTP. SQL Server zgłasza HRESULT 0x80072F0C.

Wyniki diagnostyki

Wykonano już następujące czynności diagnostyczne.

1. Rozwiązywanie DNS

Zakończone powodzeniem.

2. Łączność TCP

Przy użyciu ProcMon:

TCP Connect Result: SUCCESS sqlservr.exe -> 195.187.108.61:443

Połączenie TCP zostaje nawiązane poprawnie.

3. Windows Schannel

Łańcuch certyfikatu serwera jest prawidłowy.

Środowiska produkcyjne i demo prezentują dokładnie ten sam łańcuch certyfikatów:

*.opi.org.pl Certum OV TLS G2 R39 CA -> Certum Trusted Root CA

4. Proxy WinHTTP

netsh winhttp show proxy

Direct access (no proxy server)

Nie skonfigurowano żadnego proxy.

5. curl.exe

Uruchomiono na tym samym serwerze, na którym działa SQL Server:

curl.exe https://polon2.opi.org.pl/

zwraca:

HTTP/1.1 301 Moved Permanently

oraz:

curl.exe z nagłówkami Authorization: Bearer ... oraz institution: ...

dla adresu:

https://polon2.opi.org.pl/employees-api/...

zwraca:

HTTP/1.1 200 OK

6. PowerShell / .NET

Przy użyciu SslStream oraz HttpClient negocjacja TLS kończy się powodzeniem.

7. Endpoint REST SQL Server

Poniższe endpointy działają poprawnie przy użyciu sp_invoke_external_rest_endpoint:

https://mcl.opi.org.pl/

endpoint uwierzytelniania

oraz:

https://polon2-demo.opi.org.pl/

Problem występuje wyłącznie dla:

https://polon2.opi.org.pl/

8. Konfiguracja SQL Server

external rest endpoint enabled = 1

9. Wersja SQL Server

Problem występuje na:

SQL Server 2025 CU6 - 17.0.4055.5

To samo zachowanie zaobserwowano wcześniej na wersji RTM.

Obserwacje

Problem wydaje się być specyficzny dla klienta HTTP używanego wewnętrznie przez sp_invoke_external_rest_endpoint, ponieważ:

  • curl działa poprawnie,
  • PowerShell działa poprawnie,
  • .NET działa poprawnie,
  • SQL Server działa poprawnie dla innych hostów HTTPS,
  • błąd występuje tylko dla tego jednego hosta.

Problem pojawia się nawet dla zwykłego żądania GET bez uwierzytelniania.

Prośba

Proszę o zbadanie, dlaczego sp_invoke_external_rest_endpoint kończy się błędem HRESULT 0x80072F0C podczas łączenia z „https://polon2.opi.org.pl”, podczas gdy innymi klientami HTTP systemu Windows, na tej samej maszynie poprawnie nawiązują TLS i komunikują się z tym endpointem.

Windows dla domu | Inne | Aplikacje
Komentarze: 0 Brak komentarzy

Twoja odpowiedź

Odpowiedzi mogą być oznaczone jako „Zaakceptowane” przez autora pytań i „Proponowane” przez moderatorów, co pomaga użytkownikom poznać odpowiedź rozwiązującą problem autora.