Windows应用商店访问冲突仅在Windows 10上发生例外

时间:2016-01-15 08:34:11

标签: c# windows-8 windows-store-apps windows-10 access-violation

我在商店中拥有2年的Windows应用商店应用。 Windows 10发布后,我遇到了很多崩溃。我可以重现崩溃,但仅限于Windows 10,而不是8或8.1,我也能看到此崩溃仅在Windows 10上通过开发者控制台发生。 Windows 10~1000上有很多这样的崩溃,一个月。

崩溃序列:我打开页面,应用程序挂起一秒钟然后关闭而没有任何建议报告。

当我使用visual studio调试应用程序时,应用程序失败,例外情况:

dataGridView1.CurrentCell = null;

来自dev.windows控制台的堆栈跟踪:

Access violation reading location 0x00000090 in Windows.Ui.Xaml.dll

如果我下载报告,那就是错误说明:

windows_ui_xaml DirectUI::CCueRenderer::Initialize  0x154
windows_ui_xaml DirectUI::CTimedTextSource::Initialize  0xE0
windows_ui_xaml DirectUI::CTimedTextSource::Create  0x60
windows_ui_xaml DirectUI::MediaElement::EnableTimedText 0x60
windows_ui_xaml DirectUI::MediaElement::HandleMediaOpened   0x21
windows_ui_xaml DirectUI::MediaElement::OnMediaOpened   0x4D
windows_ui_xaml CFxCallbacks::MediaElement_OnMediaOpened    0x20
windows_ui_xaml CMediaElement::OpenMedia    0x156
windows_ui_xaml CMediaElement::HandleSourceReadyEvent   0x12
windows_ui_xaml CMediaElement::HandleMediaEvent 0x90
windows_ui_xaml CMediaQueue::ProcessQueue   0x67
windows_ui_xaml CMediaQueueManager::ProcessQueues   0x90
windows_ui_xaml CCoreServices::Tick 0x246
windows_ui_xaml CCoreServices::NWDrawTree   0x2F1
windows_ui_xaml CCoreServices::NWDrawMainTree   0xB7
windows_ui_xaml CWindowRenderTarget::Draw   0x73
windows_ui_xaml CXcpBrowserHost::OnTick 0x1CB
windows_ui_xaml CXcpDispatcher::Tick    0x88
windows_ui_xaml CXcpDispatcher::OnReentrancyProtectedWindowMessage  0x6F
windows_ui_xaml CXcpDispatcher::WindowProc  0xE0
user32  _InternalCallWinProc    0x2B
user32  UserCallWinProcCheckWow 0x1F0
user32  DispatchMessageWorker   0x231
user32  DispatchMessageW    0x10
windows_ui  Windows::UI::Core::CDispatcher::ProcessMessage  0x356
windows_ui  Windows::UI::Core::CDispatcher::WaitAndProcessMessages  0x129
windows_ui  Windows::UI::Core::CDispatcher::ProcessEvents   0x75
windows_ui_xaml CJupiterWindow::RunCoreWindowMessageLoop    0x55
windows_ui_xaml CJupiterControl::RunMessageLoop 0x25
windows_ui_xaml DirectUI::DXamlCore::RunMessageLoop 0x1E
windows_ui_xaml DirectUI::FrameworkView::Run    0x1A
twinapi_appcore Windows::ApplicationModel::Core::CoreApplicationView::Run   0x3D
twinapi_appcore _lambda_8b2420e462ae079d580fd8e4ff08c89d_::_helper_func_stdcall_    0xAC
shcore  _WrapperThreadProc  0xCA
kernel32    BaseThreadInitThunk 0x24
ntdll   __RtlUserThreadStart    0x2F
ntdll   _RtlUserThreadStart

是否有人也遇到过与Windows 10相同的问题? 据我所知,堆栈跟踪中没有托管(我的)函数调用,这是否意味着它是Windows 10的错误?

2 个答案:

答案 0 :(得分:1)

正如@Pooley所提到的,此代码会导致Windows 10计算机出错:

 var file = await StorageFile.GetFileFromApplicationUriAsync(new Uri("msappx:///Resources/Sounds/" + name + ".mp3"));
 var stream = await file.OpenAsync(FileAccessMode.Read);
 var mediaElement = new MediaElement();
 mediaElement.SetSource(stream, file.FileType); mediaElement.Play();

答案 1 :(得分:0)

我刚刚解决了一个非常类似的问题,通用应用程序会因读取访问冲突而崩溃。堆栈跟踪看起来与您的非常相似,大多数情况下它会在CXcpDispatcher :: Tick的某个地方崩溃。虽然并非总是如此,但堆栈跟踪以及异常本身有时会有所不同。

原因是一个本地c ++类,它由一个瘦C#包装器进行了dll导入(p / invoke)。当应用程序持有该类的实例时,它会不时地崩溃。

该c ++类有一个类型为std :: string的私有成员。删除该成员后,通用应用程序停止崩溃。 c ++编译器实际上为该成员发出了警告C4251