UWP MapControl macet setelah memperbesar

Nov 17 2020

Saya membuat aplikasi UWP sederhana tanpa kode, hanya XAML.

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

Jika saya memperbesar ke sekitar tingkat negara bagian AS, aplikasi akan macet dengan pengecualian yang tidak tertangani.

Log Aplikasi penampil acara menunjukkan:

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

Saya menjalankan Windows 10 Versi 20H2 (OS Build 19042.630).

Bagaimana cara memperbaiki atau mendiagnosis kerusakan ini lebih lanjut?

Perbarui 1

Saya dapat menangkap tumpukan panggilan pada saat terjadi kerusakan:

    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

Perbarui 2

Kecelakaan tidak terjadi dalam mode Aerial:

<maps:MapControl Style="AerialWithRoads" />

Perbarui 3

Dari dukungan Microsoft,

Setelah diselidiki, kontrol UWP Bing Maps secara tidak sengaja tidak dapat menangani kondisi tertentu di sekitar ubin. Untuk mengurangi masalah ini, Grup Produk kami telah mulai membatalkan perubahan yang memengaruhi pengalaman ini. Masalah ini akan mulai teratasi dalam satu jam berikutnya, jika belum.

Jawaban

3 DuncanLawler Nov 17 2020 at 17:38

Salah satu layanan peta mengembalikan data yang buruk. Ini telah dikurangi dan kontrol seharusnya bekerja normal sekarang.

1 MosheGutman Nov 17 2020 at 18:34

Ini adalah tanggapan dukungan yang saya dapatkan dari Microsoft:

Setelah diselidiki, kontrol UWP Bing Maps secara tidak sengaja tidak dapat menangani kondisi tertentu di sekitar ubin. Untuk mengurangi masalah ini, Grup Produk kami telah mulai membatalkan perubahan yang memengaruhi pengalaman ini. Masalah ini akan mulai teratasi dalam satu jam berikutnya, jika belum.

Masalah ini sekarang telah teratasi.

RoyLi-MSFT Nov 17 2020 at 07:32

Saya membuat tes untuk ini. Contoh berfungsi dengan benar di Build 2004 tetapi mengalami error di Build 20H2. Jika saya menghapus kode yang mengubah properti ZoomLevel, sampel juga akan berfungsi dengan benar di Build 20H2. Saya akan melaporkan ini ke tim.

R.deVeen Nov 17 2020 at 09:08

Hal ini juga terjadi pada saya, kemarin berfungsi dengan baik dan hari ini aplikasi macet saat membuka halaman dengan MapControl di atasnya. Menghapus properti ZoomLevel membantu.

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

Menghapus properti ZoomLevel tetapi memperbesar secara manual (atau dengan mouse bergulir) aplikasi macet saat memperbesar jauh.

Solusi sementara:

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

Juga terjadi di Windows 10 Build 2004.

Satish Nov 17 2020 at 18:01

Saya menghadapi masalah yang persis sama. Saya telah menguji aplikasi saya selama 2 bulan terakhir dan tidak pernah macet karena MapControl. Saya mengajukan lamaran di toko minggu lalu, namun tidak ada kerusakan.

Tiba-tiba, itu mulai mogok hari ini setiap kali pengguna menavigasi ke halaman peta yang berisi PivotControl untuk lapisan cuaca yang berbeda.

Saya tidak berpikir ini ada hubungannya dengan Windows 10 build. Saya menghadapi masalah ini di beberapa versi (1803, 1903 & 2004).

Inilah beberapa pengamatan saya.

  1. Ini berfungsi ketika saya menghapus Item Pivot lain dan hanya menyisakan satu.
  2. Ini juga berfungsi ketika saya menghapus properti "ZoomLevel" dan meninggalkan semua item pivot.

Tampaknya Microsoft telah mengubah sesuatu di bagian akhir layanan.