본문 바로가기

C#/.Net Core

Blazor Failed to connect via WebSockets, using the Long Polling fallback transport. 경고 메세지 해결

Blazor 프레임워크로 웹 개발을 하고 배포를 하고 나면 콘솔창에 이제

개발자 도구 콘솔 창 경고 메세지

위 와 같은 경고 문구가 떠있는 경우가 있는데 

경고 내용은 WebSockets 을 연결하지 못했다. Long Polling 을 사용한다. 이런 내용이다.

뒤에 붙어 있는 링크로 들어가보면

Host and deploy ASP.NET Core server-side Blazor apps | Microsoft Learn

 

Host and deploy ASP.NET Core server-side Blazor apps

Learn how to host and deploy server-side Blazor apps using ASP.NET Core.

learn.microsoft.com

중간에 아래와 같은 내용이있다.

Blazor는 짧은 대기 시간, 더 나은 안정성 및 향상된 보안으로 인해 WebSocket을 SignalR 전송으로 사용할 때 가장 잘 작동합니다. 긴 폴링은 WebSocket을 사용할 수 없거나 앱이 긴 폴링을 사용하도록 명시적으로 구성된 경우 SignalR에서 사용됩니다. Azure App Service에 배포할 때 서비스에 대한 Azure Portal 설정에서 WebSocket을 사용하도록 앱을 구성합니다. Azure App Service용 앱 구성에 대한 자세한 내용은 SignalR 게시 지침을 참조하세요.

즉 저 경고문구가 뜨는 이유는 Blazor 의 양방향 통신기술인 SignalR 을 사용하는데는 기본적으로 WebSocket 을 사용하는데 배포되어있는 페이지 서버 또는 서비스가 WebSocket을 사용하지 못하는 상태라는 것이다.

기본 aspnetcore / src / SignalR / docs / specs / TransportProtocols.md · dotnet/aspnetcore · 깃허브(GitHub)

 

aspnetcore/src/SignalR/docs/specs/TransportProtocols.md at main · dotnet/aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux. - dotnet/aspnetcore

github.com

위 링크를 보면 이제 .Net 에서 엔드포인트 전송을 위해 사용하는 프로토콜에 대한 설명을 알 수 있다.

저 경고문을 없애려면 어떻게해야할까?

필자는 따로 Azure App Service 를 사용하지 않고 VM 으로 IIS 를 사용하여 배포하고 있다.

App Service 를 사용하는 경우에는 리소스 내에서 WebSocket 지원 설정이 있다고 하니 찾아보길 바란다.

IIS 에서 설정하려면 이제 아래 공식 문서를 보면 된다.

ASP.NET Core의 WebSockets 지원 | 마이크로소프트 런(Microsoft T

 

WebSockets support in ASP.NET Core

Learn how to get started with WebSockets in ASP.NET Core.

learn.microsoft.com

글 중간에 보면 이러한 내용이있다.

  1. 관리 메뉴 또는 서버 관리자의 링크에서 역할 및 기능 추가 마법사를 사용합니다.
  2. 역할 기반 또는 기능 기반 설치를 선택합니다. 다음을 선택합니다.
  3. 적절한 서버를 선택합니다(로컬 서버는 기본적으로 선택됨). 다음을 선택합니다.
  4. 역할 트리에서 웹 서버(IIS)를 확장하고 웹 서버를 확장한 다음 응용 프로그램 개발을 확장합니다.
  5. WebSocket 프로토콜을 선택합니다. 다음을 선택합니다.
  6. 추가 기능이 필요하지 않은 경우 다음을 선택합니다.
  7. 설치를 선택합니다.
  8. 설치가 완료되면 닫기를 선택하여 마법사를 종료합니다.

이 방법이 이제 배포하는 서버에서 WebSocket 프로토콜 기능을 설치하는 방법이다.

필자는 설치를 했기떄문에 체크되어있는데 이제 WebSocket Protocol 을 설치하면 된다.

설치한 후 확인해보면 경고메세지는 뜨지않는다.

 
반응형