다음을 통해 공유


타일, 알림 및 배지 알림 문제 해결(Windows 런타임 앱)

[ 이 문서는 Windows 런타임 앱을 작성하는 Windows에서 8.x 및 Windows Phone 8.x 개발자를 대상으로 합니다. Windows 10용으로 개발하는 경우에는 최신 설명서를 참조하세요.]

이 항목에서는 로컬, 푸시, 정기 및 예약된 알림 등 다양한 알림 방법을 비롯하여 타일, 알림 및 배지 알림에 문제가 발생했을 때 수행해야 할 초기 문제 해결 단계에 대해 설명합니다.

타일 알림 문제 해결

이 섹션에서는 타일 및 타일 템플릿으로 작업할 때 발생할 수 있는 일부 일반적인 오류의 해결 방법을 설명합니다. 별도로 지정하지 않는 한 각 해결 방법은 모든 알림 전송 유형(로컬, 예약, 정기 또는 푸시 알림)에 적용됩니다.

로컬 타일 알림이 표시되지 않음

이 상황에서 가장 일반적인 문제는 알림 정의에 사용된 XML이 잘못되는 것입니다. 그러나 다음 단계에서 설명하는 다른 가능한 원인도 있습니다.

  • 사용자 설정 확인
  • 앱 매니페스트에 와이드 또는 큰 로고 리소스 제공
  • 이미지 크기 확인
  • URL 확인
  • 이미지 형식 검토
  • XML 구문 확인
  • 알림의 만료 시간 확인
  • 알림 큐를 사용하도록 설정했는지 확인

사용자 설정 확인

가능한 원인: 사용자나 관리자가 알림을 사용하지 않도록 설정했습니다. 앱이 앱 바에 라이브 타일 켜기/끄기 옵션을 제공했으며 이 옵션이 "꺼져" 있지 않은지 확인합니다. 관리자는 여러 그룹 정책을 통해 알림을 사용하지 않도록 설정할 수 있습니다. 알림을 사용할 수 있는지 관리자에게 문의하세요.

수정: 앱 바를 통해 알림을 사용하도록 설정하거나 관리자에게 요청하여 그룹 정책을 통해 알림을 사용하도록 설정하세요.

자세한 내용은 TileUpdater.setting를 참조하세요.

앱 매니페스트에 와이드 또는 큰 로고 리소스 제공

가능한 원인: 앱 매니페스트에서 알림에 지정된 타일 크기에 대한 기본 타일 리소스 이미지를 지정하지 않았습니다. 예를 들어 기본 와이드 타일 이미지가 제공되지 않으면 타일은 와이드 형식의 알림 템플릿을 표시하지 않습니다. 타일이 의도적으로 중간 크기 이미지만 사용하지 않는 한 보낸 사람은 알림이 도착할 때 어떤 타일 크기가 표시되는지 알 수 없기 때문에 타일 알림은 가능한 모든 타일 크기에 대한 알림 페이로드에 템플릿을 제공하는 것이 좋습니다. 이 설정은 전적으로 사용자 선택에 달려 있습니다.

수정: 알림 페이로드에서 매니페스트에 제공한 기본 로고 이미지의 각 유형에 대한 업데이트 버전을 제공하세요. 타일 크기는 기본 로고 이미지가 포함되는 크기로 조정할 수 있습니다.

이미지 크기 확인

가능한 원인: 알림의 각 이미지는 1024 x 1024픽셀보다 작고 200KB 미만이어야 합니다. 알림의 이미지가 이 크기를 초과하면 알림이 취소됩니다.

수정: 이미지 크기를 줄이세요.

자세한 내용은 타일 및 알림 이미지 크기를 참조하세요.

URL 확인

가능한 원인: URL 구문 오류입니다.

알림의 이미지는 리소스 참조 또는 리터럴 경로를 통해 지정됩니다. 경로를 사용하는 경우 다음 세 가지 프로토콜 중 하나를 사용하여 지정해야 합니다.

접두사 사용 참고
http:// 및 https:// 온라인에 저장된 이미지

이러한 이미지는 로컬로 캐시될 수 있으므로 이미지 서버가 이미지 요청을 받지 못할 수도 있습니다. 이 URL에 쿼리 문자열을 추가할 수 있습니다. 쿼리 문자열을 무시하도록 선택한 경우 웹 서버가 404 대신 원본 이미지를 반환하는지 확인하세요. 예제 쿼리 문자열: ?scale=100&contrast=blk&lang=en-US

인터넷에서 알림 콘텐츠를 검색하려면 앱이 앱 매니페스트에서 "인터넷(클라이언트)" 접근 권한 값을 선언해야 합니다.

ms-appx:/// 앱 패키지에 포함된 이미지 이러한 이미지는 앱 설치에 포함됩니다. 이 참조에서는 콜론 뒤에 삼중 슬래시가 필요합니다. 삼중 슬래시 뒤에 있는 URI(Uniform Resource Identifier)는 슬래시(/) 또는 백슬래시(\)를 사용한 경로의 폴더 구분을 허용하지만 대부분의 프로그래밍 언어에서는 백슬래시(\\)를 지정할 때 이스케이프 문자를 사용해야 합니다.
ms-appdata:///local/ 앱에서 로컬에 저장한 이미지 이 위치는 Windows.Storage.ApplicationData.current.localFolder에서 반환된 폴더에 해당합니다. 이 참조에서는 콜론 뒤에 삼중 슬래시가 필요합니다. 경로의 폴더 구분 기호는 이스케이프 문자(\\)를 사용해야 합니다.

 

참고  '/' 문자는 모든 사양에서 구분 기호로 사용됩니다. 이스케이프 문자와 원치 않게 충돌하지 않도록 항상 '\' 대신 '/'를 사용하는 것이 좋습니다.

 

잘 구성된(Well-Formed) 예제:

URL
https://www.contoso.com/icon.jpg
ms-appx:///images/icon.png
ms-appdata:///local/myDrawing.jpg

 

잘못된 형식의 예제:

URL 참고
https://www.contoso.com\fail.png HTTP 경로는 / 문자를 사용해야 합니다. \ 문자를 사용하지 마세요.
http:www.contoso.com HTTP 경로에서는 콜론 뒤에 이중 슬래시(//)가 필요합니다.
"ms-appdata:///local/c:\\images\\Drawing.jpg" 로컬 저장소 외부에 있는 이미지는 앱에서 참조할 수 없습니다.
"ms-appx://images/triangle.png" "ms-appx:"에 이중 슬래시 대신 삼중 슬래시를 사용하세요.

 

이미지 형식 검토

가능한 원인: 이미지가 지원되지 않는 형식입니다.

알림에서는 .gif, .png 또는 .jpg/.jpeg 형식의 이미지만 사용할 수 있습니다. 이미지 형식이 확장명과도 일치해야 합니다. 지원되지 않는 파일 형식을 지원되는 확장명으로 단순히 이름만 바꿔서는 안 됩니다.

이미지 형식 오류의 가장 일반적인 원인은 Windows.Storage.ApplicationData.current.localFolder 저장소로의 비트맵 직렬화입니다. 기본 형식을 호출하거나 이미지를 Windows 비트맵으로 저장하고 헤더에 "BMP"(지원되지 않는 형식)를 포함하세요.

확인: 먼저 텍스트 전용 알림을 보내 문제 범위를 이미지로 좁힐 수 있는지 확인하세요. 이미지 형식을 확인하는 한 가지 방법은 이미지를 이미지 처리 프로그램으로 로드하여 .jpg로 저장해 보는 것입니다. 이 새 .jpg 파일을 알림에서 참조하는 경우 오류가 발생하지 않으면 이미지 형식 오류였을 것입니다. 파일을 Microsoft Visual Studio 바이너리 편집기를 열어 헤더를 검토해 볼 수도 있습니다.

수정: 이미지 형식을 변경하거나 수정하세요.

XML 구문 및 콘텐츠 확인

가능한 원인: XML 구문 또는 유효성 검사 오류입니다.

기본 구문 외에는, 특히 API 또는 NotificationsExtensions 라이브러리를 사용하여 페이로드를 문자열로 구성한 경우XML이 완전하고 올바른지 확인하세요. XML 콘텐츠의 일반적인 실패 지점은 다음과 같습니다.

  • 대/소문자 구분. 태그 이름, 특성 이름 및 특성 값은 모두 대/소문자를 구분합니다. XML의 대/소문자가 올바른지 확인하세요.
  • 각 타일 크기에 대해 binding 요소를 제공해야 합니다. 보내는 각 알림에서 지원하는 각 타일 크기(매니페스트에서 제공한 로고 이미지)에 대한 binding 요소를 제공해야 합니다.
  • 텍스트 문자열에 예약된 XML 문자가 포함되면 안 됩니다. 예를 들어 <i> 및 </i> 태그를 포함하여 타일 문자열을 기울임꼴로 표시할 수 없습니다. 리터럴 문자 "<i>"를 표시하려는 경우 적절하게 이스케이프해야 합니다. XML의 이스케이프 문자에 대한 자세한 내용은 XML 문자 엔터티 및 XAML을 참조하세요.
  • lang 특성에 제공하는 값은 ITEF BCP 47 사양을 준수해야 합니다.
  • 로컬 또는 예약된 알림을 위해 로컬에 만드는 XML 문자열은 UTF-16 인코딩을 사용해야 합니다. 푸시 알림을 통해 전송되거나 URL에서 폴링될 때는 문자열이 UTF-8 인코딩을 사용해야 합니다.
  • 비어 있지 않은 src 특성을 사용하여 XML 페이로드에 image 요소를 포함하는 경우 유효한 이미지 참조를 포함해야 합니다. 그렇지 않으면 알림이 삭제됩니다.

타일 알림이 표시되지 않을 경우 이벤트 로그를 사용하여 오류를 확인할 수 있습니다. 이벤트 뷰어의 응용 프로그램 및 서비스 로그 > Microsoft > Windows > 앱 > Microsoft-Windows-TWinUI/Operational에서 타일 알림과 관련된 이벤트를 찾아보세요.

확인: Visual Studio 편집기와 같은 XML 구문 검사기를 사용하여 기본 구문 오류를 찾으세요. 적절한 템플릿 참조(TileTemplateType)를 보고 이미지 수가 올바르며 올바른 이미지 색인에 올바른 이미지를 할당하는지 확인하세요.

수정: XML을 변경하거나 콘텐츠에 맞는 다른 템플릿을 사용하세요. 또한 NotificationsExtensions 라이브러리를 사용하여 직접적인 XML 조작을 피하세요.

알림이 만료되지 않았는지 확인

가능한 원인: 만료 시간이 너무 작은 값으로 설정되어 있습니다.

알림의 만료 시간을 expirationTime 메서드(로컬 알림의 경우) 또는 X-WNS-TTL 헤더 필드(푸시 알림의 경우)를 통해 설정한 경우 값은 밀리초를 나타냅니다. 예를 들어 타일 알림을 정확히 1시간 동안 표시하려는 경우 값은 60 * 60 * 1000 = 3600000이 됩니다.

수정: 큰 값을 사용하세요.

순환하는 알림을 원하는 경우 알림 큐를 사용하도록 설정했는지 확인하세요.

가능한 원인: 타일 알림 큐를 사용하도록 설정하지 않았습니다.

기본적으로 타일은 한 번에 하나의 업데이트만 표시하며 새로 알림을 수신하면 기존 알림이 새 알림으로 교체됩니다. 마지막 5개의 알림을 돌아가며 표시하려면 앱의 시작 코드에서 TileUpdater.enableNotificationQueue(true)를 호출해야 합니다. 이 작업은 앱의 수명 중에 한 번만 수행하면 됩니다. 자세한 내용은 로컬 알림에서 알림 큐를 사용하는 방법을 참조하세요.

수정: 초기화 코드에서 enableNotificationQueue(true)를 호출하세요. 또한 알림 태그가 고유한지 확인하세요.

예약된 알림 문제 해결

예약된 타일 또는 알림이 표시되지 않음

가능한 원인: 타일 업데이트 또는 알림 메시지가 표시되지 않는 문제가 발생하는 경우 대개는 알림의 XML 콘텐츠 형식이 잘못된 경우가 많습니다. 예약되지 않은 알림과 마찬가지로 예약된 타일 및 알림 메시지도 타일알림 XML 스키마를 준수해야 합니다.

수정: 예약된 알림의 전송 문제를 디버그할 경우 먼저 로컬 알림을 통해 XML을 테스트해 보세요. 자세한 내용은 이 항목의 로컬 타일 알림이 표시되지 않음 또는 로컬 알림 메시지가 표시되지 않음 섹션을 참조하세요.

앱의 AddToSchedule 메서드 호출이 실패함

가능한 원인: 최대 허용된 예약된 알림 수를 초과했습니다.

수정: 알림을 4096개 이상 예약하려고 하면 TileUpdater.addToScheduleToastNotifier.addToSchedule이 모두 실패합니다. 예약된 알림 수를 줄여 보세요.

가능한 원인: 알림이 현재 시스템 클록 시간을 기준으로 하여 과거 시간으로 예약되었습니다.

수정: 예약된 알림 시간이 미래가 되도록 하세요. 시스템 클록 시간을 확인해 보세요.

정기(폴링) 알림 문제 해결

정기 알림이 타일 또는 배지를 업데이트하지 않음

다음 여러 가지 문제 중 하나 이상이 발생하여 정기 알림이 표시되지 않을 수 있습니다.

  • 웹 서비스가 타일 XML 스키마를 준수하는 올바른 XML 문서를 반환하지 않습니다. 정기 알림을 구현하는 동안 문제가 발생하면 먼저 타일의 XML 형식이 올바른지 확인하세요. 정기 알림과 관련된 문제를 디버그할 때는 먼저 로컬 알림을 통해 XML을 테스트하는 것이 좋습니다. 자세한 내용은 이 항목의 로컬 타일 알림이 표시되지 않음 섹션뿐 아니라 빠른 시작: 타일 업데이트 보내기를 참조하세요.
  • 폴링 요청에서 반환된 텍스트의 형식이 UTF-8이 아닙니다. UTF-8 인코딩이 필요합니다.
  • Windows가 서비스에 대해 제공된 URL을 폴링할 때 서비스가 Windows에서 사용하는 HTTP GET 요청에 올바르게 응답하지 않습니다. HTTP 및 HTTPS 프로토콜이 모두 지원됩니다.
  • 앱이 앱 매니페스트 파일(package.appxmanifest)에서 인터넷 접근 권한 값을 선언하지 않았습니다. Visual Studio 매니페스트 편집기에는 접근 권한 값 탭 아래에 **인터넷(클라이언트)**이라는 옵션이 있습니다. 앱에 대해 이 접근 권한 값을 선언하지 않으면 Windows에서 서비스를 폴링하지 않습니다.
  • X-WNS-Tag 및 X-WNS-Expires 헤더로 설정된 값의 형식이 올바른지 확인합니다. X-WNS-Expires는 다음 형식 중 하나를 사용해야 합니다.
    • Sun, 06 Nov 1994 08:49:37 GMT
    • Sunday, 06-Nov-94 08:49:37 GMT
    • Sun Nov 6 08:49:37 1994

정기 업데이트가 지연됨

  • Windows는 전원 및 성능을 최적화하기 위해 필요한 경우 URL 폴링을 최대 15분까지 지연할 수 있습니다.
  • URL에 연결할 때는 서비스를 사용할 수 없습니다. 서비스를 사용할 수 없으면 다음 폴링 간격까지 서비스에 다시 연결되지 않습니다.

푸시 알림 문제 해결

이 섹션에서는 푸시 알림으로 작업할 때 발생할 수 있는 일부 일반적인 오류의 해결 방법을 설명합니다.

  • 이벤트 로그 확인
  • 푸시 알림이 "200 OK" 응답을 받지만 표시되지 않음
  • 푸시 알림이 "200 OK" 이외의 코드를 반환함
  • 푸시 알림 채널을 만들 때 오류가 발생함

이벤트 로그 확인

타일 알림이나 푸시 알림 메시지가 예상대로 표시되지 않을 경우 이벤트 로그를 살펴봅니다.

  • 알림이 수신되지만 표시되지 않는 경우: 이벤트 뷰어를 실행하고 Applications and Services\Microsoft\Windows\Apps에서 Microsoft-Windows-TWinUI/Operational 로그를 검토합니다.
  • 알림이 전혀 수신되지 않는 경우: 이벤트 뷰어를 실행하고 Applications and Services\Microsoft\Windows\PushNotifications-Platform에서 Operational 로그를 검토합니다.

푸시 알림이 "200 OK" 응답을 받지만 표시되지 않음

WNS(Windows 푸시 알림 서비스)가 "200 OK" 응답을 반환하면 클라이언트가 온라인 상태인 경우 클라이언트로 알림을 전송합니다. 클라이언트가 온라인 상태임을 확인했지만 알림이 표시되지 않으면 다음 단계에 따르세요.

  • 원인: 알림 콘텐츠에 XML 오류가 있습니다.

    수정: 기본 XML 구문을 확인하고 XML이 완벽하고 올바른지 확인하세요. XML 콘텐츠의 일반적인 실패 지점은 다음과 같습니다.

    • 대/소문자 구분. 태그 이름, 특성 이름 및 특성 값은 모두 대/소문자를 구분합니다. XML의 대/소문자가 올바른지 확인하세요.
    • 각 지원되는 타일 형식에 대해 binding 요소를 제공해야 합니다. 보내는 각 알림에서 지원하는 각 타일 크기에 대해 binding 요소를 제공해야 합니다.
    • 텍스트 문자열에 예약된 XML 문자가 포함되면 안 됩니다. 예를 들어 <i> 및 </i> 태그를 포함하여 타일 또는 알림 문자열을 기울임꼴로 표시할 수 없습니다. 리터럴 문자 "<i>"를 표시하려는 경우 적절하게 이스케이프해야 합니다. XML의 이스케이프 문자에 대한 자세한 내용은 XML 문자 엔터티 및 XAML을 참조하세요.
    • lang 특성에 제공하는 값은 ITEF BCP 47 사양을 준수해야 합니다.
    • 푸시 알림을 통해 전송되는 XML 문자열은 UTF-8 인코딩을 사용해야 합니다.
    • 비어 있지 않은 src 특성을 사용하여 XML 페이로드에 image 요소를 포함하는 경우 유효한 이미지 참조를 포함해야 합니다. 그렇지 않으면 알림이 삭제됩니다.

    자세한 내용은 타일, 알림 및 배지 스키마 설명서를 참조하세요.

  • 원인: 푸시 알림 API 매개 변수를 부적절하게 사용했습니다.

    수정: 자세한 내용은 API 설명서의 Windows.Networking.PushNotifications 네임스페이스를 참조하세요.

  • 원인: 헤더 유형이 알림 콘텐츠와 일치하지 않습니다. X-WNS-Type 헤더가 페이로드에 지정된 알림 템플릿에 해당하는 값(—타일, 배지 또는 알림—)으로 설정되어 있지 않으면 알림이 표시되지 않습니다. 이 값이 일치하지 않으면 클라이언트에서 오류가 발생하고 알림이 삭제됩니다.

    수정: 앱 서버가 X-WNS-Type 헤더에 올바른 값을 사용하는지 확인하려면 푸시 알림 서비스 요청 및 응답 헤더를 참조하세요.

  • 원인: X-WNS-TTL 헤더에서 설정된 TTL(Time to Live) 값이 너무 작습니다.

    수정: 값이 초 단위로 지정된다는 것을 고려하여 더 큰 TTL 값을 제공합니다.

이전 단계의 항목을 해결한 후에도 여전히 알림이 표시되지 않으면 이 항목의 로컬 타일 알림이 표시되지 않음 섹션에서 로컬 알림에 대한 문제 해결 단계를 참조하세요.

푸시 알림이 "200 OK" 이외의 코드를 반환함

WNS가 "200 OK"를 반환하지 않으면 알림이 클라이언트에게 전송되지 않습니다. 반환 코드가 400대 숫자로 시작하면 개발자가 문제를 해결할 수 있습니다. 특정 코드의 의미에 대한 자세한 내용은 WNS(Windows 푸시 알림 서비스) 응답 코드 참조를 참조하세요. 이러한 오류를 Catch하고 처리하는 방법을 보여주는 예제 코드를 보려면 빠른 시작: 푸시 알림 보내기를 참조하거나 푸시 알림 및 정기 알림 샘플을 다운로드하세요.

참고  특히 여기에 나열된 오류에 대해서는 COM Error Codes (WPN, MBN, P2P, Bluetooth)를 참조하세요.

 

  • 알림 요청이 "400 잘못된 요청"을 반환함
  • 알림 요청이 "401 권한이 없음"을 반환함
  • 알림 요청이 "401 권한이 없음"을 반환하고 토큰이 만료됨
  • 알림 요청이 "403 사용 권한 없음"을 반환함
  • 알림 요청이 "404 찾을 수 없음"을 반환함
  • 알림 요청이 "406 승인 금지"를 반환함
  • 알림 요청이 "410 없음"을 반환함

알림 요청이 "400 잘못된 요청"을 반환함

원인: 하나 이상의 WNS 헤더 사용이 잘못되었거나 HTTP 요청이 잘못되었습니다.

수정: 앱 서버가 모든 사용자 지정 헤더를 설명된 대로 사용하는지 확인하려면 푸시 알림 서비스 요청 및 응답 헤더를 참조하세요.

알림 요청이 "401 권한이 없음"을 반환함

원인: 앱 서버는 앱을 등록할 때 제공된 올바른 패키지 SID(패키지 보안 식별자) 및 비밀 키를 사용해야 합니다. 최근에 Windows 스토어 대시보드에서 비밀 키를 변경한 경우 앱 서버를 업데이트해야 합니다. 자세한 내용은 푸시 알림 개요를 참조하세요.

수정: Windows 스토어 대시보드를 방문하여 패키지 SID와 암호를 확인하세요.

알림 요청이 "401 권한이 없음"을 반환하고 토큰이 만료됨

원인: 액세스 토큰의 수명에는 기한이 있습니다. 만료된 액세스 토큰을 사용하여 알림을 보내면 앱 서버의 자격 증명이 올바르지 않으므로 알림을 보낼 수 없습니다.

수정: 패키지 SID(패키지 보안 식별자)와 비밀 키를 통해 WNS로 인증하여 WNS에서 새 액세스 토큰을 요청하세요. 자세한 내용은 WNS(Windows 푸시 알림 서비스) 알림 개요를 참조하세요.

알림 요청이 "403 사용 권한 없음"을 반환함

원인: 이 오류는 제공한 액세스 토큰이 해당하는 채널 URL로 알림을 보내는 데 필요한 자격 증명과 일치하지 않을 경우 발생합니다. 모든 앱은 Windows 스토어에 등록하여 앱 서버에 대한 자격 증명을 받아야 합니다. 각 앱의 경우 Windows 스토어에서 제공한 자격 증명만 사용하여 이 앱으로 알림을 보낼 수 있으며 이 자격 증명은 해당 특정 앱에 대해서만 사용할 수 있습니다.

수정: 개발자 계정을 사용하여 Windows 스토어 대시보드에 로그인합니다. 앱을 선택하고 "고급 기능" -> "Manage your cloud service settings(클라우드 서비스 설정 관리)"를 클릭합니다. "Identifying your app(앱 식별)"을 선택하여 클라우드 서비스 자격 증명과 일치하도록 앱 매니페스트를 업데이트하는 것에 대한 지침을 읽습니다.

알림 요청이 "404 찾을 수 없음"을 반환함

원인: 이 오류는 일반적으로 채널 URL의 형식이 잘못되었음을 의미합니다. WNS로 알림을 보낼 때 채널 URL을 변조하거나 수정해서는 안 됩니다. 채널 URL은 항상 불투명 문자열—로 처리해야 하며 해당 콘텐츠를 확인하거나 알 필요가 없습니다.

수정: 코드가 하나 이상의 문자를 변경하거나 인코딩을 변경하여 채널 URL을 수정하지 않는지 확인하세요.

알림 요청이 "406 승인 금지"를 반환함

원인: WNS에는 악성 앱이 다른 사용자와 개발자의 서비스에 부정적인 영향을 미치지 못하도록 하는 보호 정책이 있습니다. 너무 짧은 기간에 알림을 너무 많이 보내면 WNS에서 명시적으로 알림을 삭제할 수 있습니다.

수정: 알림 빈도를 검토하여 더 나은 사용자 환경을 위해 빈도를 줄이거나 최적화할 수 있는지 확인하세요.

알림 요청이 "410 없음"을 반환함

원인: 채널 URL이 만료되었습니다. 앱이 실행되어 새 채널 URL을 요청할 때까지 더 이상 알림을 보낼 수 없습니다.

수정: Windows 스토어 앱은 시작할 때 항상 채널 URL을 요청해야 합니다. 할당된 채널 URL은 동일하게 유지되지 않을 수 있습니다. URL이 변경되면 클라이언트는 클라우드 서버에서 정보를 업데이트해야 합니다. 자세한 내용은 알림 채널을 요청, 생성 및 저장하는 방법을 참조하세요.

푸시 알림 채널을 만들 때 오류가 발생함

  • 알림 채널을 만들 때 ERROR_NO_NETWORK 오류가 발생함
  • 알림 채널을 만들 때 WPN_E_CLOUD_INCAPABLE 오류가 발생함
  • 알림 채널을 만들 때 WPN_E_INVALID_APP 오류가 발생함

참고  특히 여기에 나열된 오류에 대해서는 COM Error Codes (WPN, MBN, P2P, Bluetooth)를 참조하세요.

 

알림 채널을 만들 때 ERROR_NO_NETWORK 오류가 발생함

원인: 알림 채널을 만들려면 WNS가 인터넷에 연결되어 있어야 합니다.

수정: 인터넷 연결을 확인하세요.

알림 채널을 만들 때 WPN_E_CLOUD_INCAPABLE 오류가 발생함

원인: 앱이 앱 매니페스트(package.appxmanifest)에서 인터넷 접근 권한 값을 선언하지 않았습니다.

수정: 앱 매니페스트에 인터넷 접근 권한 값이 선언되어 있는지 확인하세요. Visual Studio 매니페스트 편집기에는 접근 권한 값 탭 아래에 **인터넷(클라이언트)**이라는 옵션이 있습니다. 자세한 내용은 Capabilities를 참조하세요.

알림 채널을 만들 때 WPN_E_INVALID_APP 오류가 발생함

원인: 앱은 올바른 패키지 이름을 사용해야 합니다. 아직 패키지 이름을 받지 않은 경우 Windows 스토어 포털의 "고급 기능"에서 패키지 이름을 받을 수 있습니다.

수정: Windows 스토어 앱의 PKSID(패키지 보안 식별자)를 검색하는 방법에 대한 자세한 내용은 WNS(Windows 푸시 알림 서비스)를 사용하여 인증하는 방법을 참조하세요.

알림 메시지 문제 해결

이 섹션에서는 알림 및 알림 템플릿으로 작업할 때 발생할 수 있는 일부 일반적인 오류의 해결 방법을 설명합니다. 알림 메시지에 사용되는 대부분의 문제 해결 단계는 타일 알림에 사용되는 단계와 같습니다. 별도로 지정하지 않는 한 각 해결 방법은 모든 알림 전송 유형(로컬, 예약 또는 푸시 알림)에 적용됩니다.

로컬 알림 메시지가 표시되지 않음

이 상황에서 가장 일반적인 문제는 알림 정의에 사용된 XML이 잘못되는 것입니다. 그러나 다음 단계에서 설명하는 다른 가능한 원인도 있습니다.

  • 사용자 설정 확인
  • 앱 매니페스트 항목 확인
  • 이미지 크기 확인
  • URL 확인
  • 이미지 형식 검토
  • XML 구문 확인
  • 알림의 만료 시간 확인

사용자 설정 확인

가능한 원인: 사용자나 관리자가 설정을 통해 알림을 사용하지 않도록 설정했습니다. PC 설정 -> 알림 페이지에서 전역 알림 켜기/끄기 스위치 및 응용 프로그램별 켜기/끄기 스위치를 확인하세요. 관리자는 여러 그룹 정책을 통해 알림을 사용하지 않도록 설정할 수 있습니다. 알림을 사용할 수 있는지 관리자에게 문의하세요.

수정: 설정을 통해 알림을 사용하도록 설정하거나 관리자에게 요청하여 그룹 정책을 통해 알림을 사용하도록 설정하세요.

자세한 내용은 빠른 시작: 알림 메시지 보내기를 참조하세요.

앱 매니페스트 항목 확인

가능한 원인: 앱 매니페스트에 알림 전송을 사용하도록 설정된 적절한 정보가 없습니다. 앱 매니페스트의 "알림 가능" 설정이 "예"로 설정되어 있는지 확인하세요. 이미지 등의 알림 콘텐츠를 인터넷에서 가져올 경우 앱 매니페스트에서 "인터넷(클라이언트)" 접근 권한 값이 선언되어 있는지 확인하세요.

수정: 앱 매니페스트에서 알림과 관련된 항목을 사용하도록 설정하세요.

자세한 내용은 빠른 시작: Visual Studio 매니페스트 편집기를 사용하여 기본 타일 만들기를 참조하세요.

이미지 크기 확인

가능한 원인: 모든 알림의 이미지 크기는 1024 x 1024픽셀보다 작고 200KB 미만이어야 합니다. 알림의 이미지가 이 크기를 초과하면 알림이 취소됩니다.

수정: 이미지 크기를 줄이세요.

자세한 내용은 타일 및 알림 이미지 크기를 참조하세요.

URL 확인

가능한 원인: URL 구문 오류입니다.

이미지 알림은 리소스 참조 또는 리터럴 경로로 제공됩니다. 경로를 사용하는 경우 다음 세 가지 프로토콜 중 하나를 사용하여 지정해야 합니다.

접두사 사용 참고
http:// 및 https:// 온라인에 저장된 이미지

이러한 이미지는 로컬로 캐시될 수 있으므로 이미지 서버가 이미지 요청을 받지 못할 수도 있습니다. 이 URL에 쿼리 문자열이 추가됩니다. 쿼리 문자열을 무시하도록 선택한 경우 웹 서버가 404 대신 원본 이미지를 반환하는지 확인하세요. 예제 쿼리 문자열: ?scale=100&contrast=blk&lang=en-US

인터넷에서 알림 콘텐츠를 검색하려면 앱이 앱 매니페스트에서 "인터넷(클라이언트)" 접근 권한 값을 선언해야 합니다.

ms-appx:/// 앱 패키지에 포함된 이미지 URI는 슬래시(/) 또는 백슬래시(\)를 사용한 경로의 폴더 구분을 허용하지만 대부분의 프로그래밍 언어에서는 백슬래시(\\)를 지정할 때 이스케이프 문자를 사용해야 합니다. 이 참조에서는 콜론 뒤에 삼중 슬래시가 필요합니다.
ms-appdata:///local/ 앱에서 로컬에 저장한 이미지 이 위치는 Windows.Storage.ApplicationData.current.localFolder에서 반환된 폴더에 해당합니다. 경로의 폴더 구분 기호는 이스케이프 문자(\\)를 사용해야 합니다. 이 참조에서는 콜론 뒤에 삼중 슬래시가 필요합니다.

 

참고  '/' 문자는 모든 사양에서 구분 기호로 사용됩니다. 이스케이프 문자와 원치 않게 충돌하지 않도록 항상 '\' 대신 '/'를 사용하는 것이 좋습니다.

 

잘 구성된(Well-Formed) 예제:

URL
https://www.contoso.com/icon.jpg
ms-appx:///images/icon.png
ms-appdata:///local/myDrawing.jpg

 

잘못된 형식의 예제:

URL 참고
https://www.contoso.com\fail.png HTTP 경로는 / 문자를 사용해야 합니다. \ 문자를 사용하지 마세요.
http:www.contoso.com HTTP 경로에서는 콜론 뒤에 이중 슬래시(//)가 필요합니다.
"ms-appdata:///local/c:\\images\\Drawing.jpg" 로컬 저장소 외부에 있는 이미지는 앱에서 참조할 수 없습니다.
"ms-appx://images/triangle.png" "ms-appx:"에 이중 슬래시 대신 삼중 슬래시를 사용하세요.

 

이미지 형식 검토

가능한 원인: 이미지가 지원되지 않는 형식입니다.

알림에서는 .png, .jpg/.jpeg 또는 .gif 형식의 이미지만 사용할 수 있습니다. 이미지 형식이 확장명과도 일치해야 합니다. 지원되지 않는 파일 형식을 지원되는 확장명으로 단순히 이름만 바꿔서는 안 됩니다.

이미지 형식 오류의 가장 일반적인 원인은 Windows.Storage.ApplicationData.current.localFolder 저장소로의 비트맵 직렬화입니다. 기본 형식을 호출하거나 이미지를 Windows 비트맵으로 저장하고 헤더에 "BMP"를 포함하세요.

확인: 이미지 형식을 확인하는 한 가지 방법은 이미지를 이미지 처리 프로그램으로 로드하여 .jpg로 저장해 보는 것입니다. 이 새 .jpg 파일을 알림에서 참조하는 경우 오류가 발생하지 않으면 이미지 형식 오류였을 것입니다. Visual Studio 이진 편집기에서 파일을 열고 헤더를 검사할 수도 있습니다.

수정: 이미지 형식을 변경하거나 수정하세요.

XML 구문 및 콘텐츠 확인

가능한 원인: XML 구문 또는 유효성 검사 오류입니다.

기본 구문 외에도 XML이 완벽하고 올바른지 확인하세요. XML 콘텐츠의 일반적인 실패 지점은 다음과 같습니다.

  • 대/소문자 구분. 태그 이름, 특성 이름 및 특성 값은 모두 대/소문자를 구분합니다. XML의 대/소문자가 올바른지 확인하세요.
  • 텍스트 문자열에 예약된 XML 문자가 포함되면 안 됩니다. 예를 들어 <i> 및 </i> 태그를 포함하여 문자열을 기울임꼴로 표시할 수 없습니다. 리터럴 문자 "<i>"를 표시하려는 경우 적절하게 이스케이프해야 합니다. XML의 이스케이프 문자에 대한 자세한 내용은 XML 문자 엔터티 및 XAML을 참조하세요.
  • lang 특성에 제공하는 값은 ITEF BCP 47 사양을 준수해야 합니다.
  • 로컬 또는 예약된 알림을 위해 로컬에 만드는 XML 문자열은 UTF-16 인코딩을 사용해야 합니다. 푸시 알림을 통해 전송되거나 URL에서 폴링될 때는 문자열이 UTF-8 인코딩을 사용해야 합니다.
  • 비어 있지 않은 src 특성을 사용하여 XML 페이로드에 image 요소를 포함하는 경우 유효한 이미지 참조를 포함해야 합니다. 그렇지 않으면 알림이 실패합니다.

알림 메시지가 표시되지 않을 경우 이벤트 로그를 사용하여 오류를 확인할 수 있습니다. 이벤트 뷰어의 응용 프로그램 및 서비스 로그 > Microsoft > Windows > 앱 > Microsoft-Windows-TWinUI/Operational에서 알림 메시지와 관련된 이벤트를 찾아보세요.

확인: Visual Studio 편집기와 같은 XML 구문 검사기를 사용하여 기본 구문 오류를 찾으세요. 적절한 템플릿 참조(ToastTemplateType)를 보고 올바른 요소에 올바른 항목을 할당하는지 확인하세요.

수정: XML을 변경하거나 콘텐츠에 맞는 다른 템플릿을 사용하세요.

알림이 만료되지 않았는지 확인

가능한 원인: 만료 시간이 너무 작은 값으로 설정되어 있습니다.

알림의 만료 시간을 expirationTime 메서드(로컬 알림의 경우) 또는 X-WNS-TTL 헤더 필드(푸시 알림의 경우)를 통해 설정한 경우 값은 밀리초를 나타냅니다. 예를 들어 알림 메시지를 정확히 1시간 동안 표시하려는 경우 값은 60 * 60 * 1000 = 3600000이 됩니다.

수정: 큰 값을 사용하세요.

문제 보고

이 항목에서 제안된 해결 방법을 시도한 후에도 문제가 해결되지 않은 경우에는 Microsoft 포럼에 메시지를 게시하여 Microsoft 개발자 및 기타 관심을 갖는 사용자와 논의해 보세요.

푸시 알림의 경우 문제에 대한 설명 외에도 HTTP 오류 코드 및 HTTP 헤더를 비롯하여 채널 URL 및 WNS에서 받은 응답의 예를 입력해야 할 수 있습니다. 문제를 보고할 때 앱 서버가 기록하는 특정 헤더가 있습니다. 자세한 내용은 푸시 알림 서비스 요청 및 응답 헤더를 참조하세요.

관련 항목

앱 타일 및 배지 샘플

예약된 알림 샘플

알림 메시지 샘플

푸시 알림 및 정기 알림 샘플

빠른 시작: Visual Studio 매니페스트 편집기를 사용하여 기본 타일 만들기

빠른 시작: 타일 업데이트 보내기

빠른 시작: 배지 업데이트 보내기

빠른 시작: 잠금 화면에 알림 표시

빠른 시작: 정기 알림 설정

타일 템플릿 카탈로그

타일 알림 예약 방법

로컬 알림에 알림 큐를 사용하는 방법

타일 XML 스키마

타일 및 타일 알림 개요

배지 개요

잠금 화면 개요

알림 큐

알림 전달 방법 선택

보조 타일 지침