확대 후 UWP MapControl이 충돌 함

Nov 17 2020

코드없이 XAML 만있는 간단한 UWP 애플리케이션을 만들었습니다.

    <Grid>
        <maps:MapControl/>
    </Grid>

미국 주 수준으로 확대하면 응용 프로그램이 처리되지 않은 예외와 함께 충돌합니다.

이벤트 뷰어 애플리케이션 로그에는 다음이 표시됩니다.

Faulting module name: ucrtbase.dll, version: 10.0.19041.546, time stamp: 0x43cbc11d
Exception code: 0xc0000409

Windows 10 버전 20H2 (OS 빌드 19042.630)에서 실행 중입니다.

이 충돌을 추가로 수정하거나 진단하려면 어떻게해야합니까?

업데이트 1

충돌 당시 호출 스택을 캡처 할 수있었습니다.

    ucrtbase.dll!abort()    Unknown
    ucrtbase.dll!terminate()    Unknown
    ucrtbase.dll!__crt_state_management::wrapped_invoke<void (*)(void),void>(void (*)(void))    Unknown
    BingMaps.dll!MapControl::DetailTextureSource::beginGetTexture(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > > const &,class std::shared_ptr<class MapControl::TileImage>,class Math::TileId const &)    Unknown
    BingMaps.dll!MapControl::DetailTextureSource::childOperationCompleted(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > >,class Math::TileId,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > const &)    Unknown
    BingMaps.dll!std::_Func_impl_no_alloc<class std::_Binder<struct std::_Unforced,void ( MapControl::DetailTextureSource::*)(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > >,class Math::TileId,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > const &),class MapControl::DetailTextureSource *,class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class Engine::Texture> >,class std::shared_ptr<class Pal::UntypedAsyncOperation> > > &,class Math::TileId const &,struct std::_Ph<1> const &>,void,class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > &>::_Do_call(class Pal::AsyncOperation<class std::shared_ptr<class MapControl::TileImage> > &)    Unknown
    BingMaps.dll!Pal::AsyncOperation<struct Core::DummyType>::callbackFromBaseClass(void)   Unknown
    BingMaps.dll!Pal::UntypedAsyncOperation::tryComplete(class Core::StatusCode)    Unknown
    BingMaps.dll!Pal::UntypedAsyncOperation::setSucceededOrFailedInternal(class Core::StatusCode)   Unknown
    BingMaps.dll!MapControl::PipelineAsyncSource<class std::shared_ptr<class MapControl::TileImage>,class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> > >::process(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class std::shared_ptr<class MapControl::TileImage>,struct std::pair<class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> >,class std::shared_ptr<class Utility::PrioritizableTask> > > > const &,class std::shared_ptr<class Pal::UntypedAsyncOperationCancelList> const &)    Unknown
    BingMaps.dll!std::_Func_impl_no_alloc<class std::_Binder<struct std::_Unforced,void ( MapControl::PipelineAsyncSource<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> > >::*)(class MapControl::TileFrameKey const &,class std::shared_ptr<class Pal::AsyncOperationImplementation<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,struct std::pair<class std::shared_ptr<class Pal::AsyncOperation<class MapControl::DownloadedResource> >,class std::shared_ptr<class Utility::PrioritizableTask> > > > const &,class std::shared_ptr<class Pal::UntypedAsyncOperationCancelList> const &),class MapControl::PipelineAsyncSource<class MapControl::Versioned<class std::shared_ptr<class MapControl::GenericMesh<struct Engine::xyzFloat3uvShort2stShort2> > >,class std::shared_ptr<class Pal::AsyncOperation<class Map    Unknown
    MapConfiguration.dll!Pal::Task::run(void)   Unknown
    MapConfiguration.dll!Utility::PrioritizedTaskQueue::executeNextTask(void)   Unknown
    MapConfiguration.dll!Pal::Task::run(void)   Unknown
    MapConfiguration.dll!Microsoft::WRL::Details::DelegateArgTraits<long (__cdecl ABI::Windows::System::Threading::IWorkItemHandler::*)(ABI::Windows::Foundation::IAsyncAction *)>::DelegateInvokeHelper<Microsoft::WRL::Implements<Microsoft::WRL::RuntimeClassFlags<2>,ABI::Windows::System::Threading::IWorkItemHandler,Microsoft::WRL::FtmBase>,<lambda_a2440968369958b092dc7b4a3993b234> &,-1,ABI::Windows::Foundation::IAsyncAction *>::Invoke()  Unknown
    threadpoolwinrt.dll!Windows::System::Threading::CThreadPoolWorkItem::CommonWorkCallback()   Unknown
    threadpoolwinrt.dll!Windows::System::Threading::CThreadPoolWorkItem::BatchedCallback()  Unknown
    ntdll.dll!TppWorkpExecuteCallback() Unknown
    ntdll.dll!TppWorkerThread() Unknown
    kernel32.dll!BaseThreadInitThunk()  Unknown
    ntdll.dll!RtlUserThreadStart()  Unknown

업데이트 2

공중 모드에서는 충돌이 발생하지 않습니다.

<maps:MapControl Style="AerialWithRoads" />

업데이트 3

Microsoft 지원에서

조사 결과 Bing Maps UWP 컨트롤은 실수로 타일 주변의 특정 조건을 처리 할 수 ​​없었습니다. 이 문제를 완화하기 위해 제품 그룹은이 경험에 영향을 준 변경 사항을 롤백하기 시작했습니다. 이 문제는 아직 해결되지 않은 경우 다음 시간 내에 해결되기 시작합니다.

답변

3 DuncanLawler Nov 17 2020 at 17:38

지도 서비스 중 하나가 잘못된 데이터를 반환했습니다. 이 문제가 완화되었으며 이제 제어가 정상적으로 작동합니다.

1 MosheGutman Nov 17 2020 at 18:34

다음은 Microsoft에서받은 지원 응답입니다.

조사 결과 Bing Maps UWP 컨트롤은 실수로 타일 주변의 특정 조건을 처리 할 수 ​​없었습니다. 이 문제를 완화하기 위해 제품 그룹은이 경험에 영향을 준 변경 사항을 롤백하기 시작했습니다. 이 문제는 아직 해결되지 않은 경우 다음 시간 내에 해결되기 시작합니다.

이제이 문제가 해결되었습니다.

RoyLi-MSFT Nov 17 2020 at 07:32

나는 이것을 테스트했다. 샘플은 빌드 2004에서 올바르게 작동하지만 빌드 20H2에서 충돌합니다. ZoomLevel 속성을 변경하는 코드를 제거하면 샘플이 빌드 20H2에서도 올바르게 작동합니다. 팀에보고하겠습니다.

R.deVeen Nov 17 2020 at 09:08

이것은 나에게도 발생합니다. 어제 잘 작동했고 오늘은 MapControl이있는 페이지를 열 때 앱이 충돌합니다. ZoomLevel 속성을 제거하면 도움이되었습니다.

 <maps:MapControl ZoomLevel="12" /> <!-- Crashed -->
 <maps:MapControl /> <!-- Working -->

ZoomLevel 속성을 제거했지만 수동으로 (또는 마우스 스크롤로) 확대하면 멀리 확대하는 동안 앱이 충돌합니다.

임시 해결 방법 :

 <maps:MapControl ZoomInteractionMode="Disabled" /> <!-- Better -->

Windows 10 Build 2004에서도 발생합니다.

Satish Nov 17 2020 at 18:01

나는 똑같은 문제에 직면하고 있습니다. 지난 2 개월 동안 내 응용 프로그램을 테스트 해 왔으며 MapControl로 인해 충돌하지 않았습니다. 지난주 스토어에 신청서를 제출했지만 충돌이 발생하지 않았습니다.

갑자기 사용자가 다른 날씨 레이어에 대한 PivotControl이 포함 된지도 페이지를 탐색 할 때마다 오늘 충돌이 시작되었습니다.

나는 이것이 Windows 10 빌드와 관련이 없다고 생각합니다. 여러 빌드 (1803, 1903 및 2004)에서이 문제에 직면하고 있습니다.

여기에 몇 가지 관찰이 있습니다.

  1. 다른 피벗 항목을 제거하고 하나만 남겨두면 작동합니다.
  2. "ZoomLevel"속성을 제거하고 모든 피벗 항목을 그대로 둘 때도 작동합니다.

마이크로 소프트가 서비스 쪽에서 뭔가를 변경 한 것 같습니다.