InnerException = {"Exception from HRESULT: 0x8004231C"}

InnerException = {"Exception from HRESULT: 0x8004231C"}

我正在 Windows Phone Silverlight 8.1 中开发一个应用程序,我试图在其中使用 this link 在当前位置和硬编码目的地之间设置一条路线代码是:

private async void GetCoordinates()
        {
            Geolocator myGeolocator = new Geolocator();
            myGeolocator.DesiredAccuracyInMeters = 50;
            Geoposition myposition = null;
            try
            {
                myposition = await myGeolocator.GetGeopositionAsync(TimeSpan.FromMinutes(1),TimeSpan.FromSeconds(50));
                Geocoordinate myGeocoordinate = myposition.Coordinate;
                GeoCoordinate myGeoCoordinate = CoordinateConverter.ConvertGeocoordinate(myGeocoordinate);
                mycoordinates.Add(new GeoCoordinate(myGeoCoordinate.Latitude, myGeoCoordinate.Longitude));
                locationmap.Center = myGeoCoordinate;
                locationmap.ZoomLevel = 13;

                Mygeocodequery = new GeocodeQuery();
                Mygeocodequery.SearchTerm = "Seattle, WA";
                Mygeocodequery.GeoCoordinate = new GeoCoordinate(myGeoCoordinate.Latitude, myGeoCoordinate.Longitude);
                Mygeocodequery.QueryCompleted += Mygeocodequery_Querycompleted;
                Mygeocodequery.QueryAsync();
            }
            catch (UnauthorizedAccessException)
            {
                MessageBox.Show("Location is disabled in phone settings or capabilities are not checked.");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void Mygeocodequery_Querycompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e)
        {
            if(e.Error==null)
            {
                MyQuery = new RouteQuery();
                mycoordinates.Add(e.Result[0].GeoCoordinate);
                MyQuery.Waypoints = mycoordinates;
                MyQuery.QueryCompleted += MyQuery_QueryCompleted;
                MyQuery.QueryAsync();
                Mygeocodequery.Dispose();
            }
        }

        private void MyQuery_QueryCompleted(object sender, QueryCompletedEventArgs<Route> e)
        {
            try
            {
                    **Route MyRoute = e.Result;**
                    MapRoute MyMapRoute = new MapRoute(MyRoute);
                    locationmap.AddRoute(MyMapRoute);
                    MyQuery.Dispose();
            }
            catch (TargetInvocationException ex)
            {
                MessageBox.Show(ex.InnerException.Message);
            }
        }

它有时工作正常但有时我得到这个内部异常作为 TargetInvocationException Exception from HRESULT: 0x8004231C

在突出显示的行中,请让我知道我应该怎么做?

问题只是因为我跳过了在地图控件的加载事件中编写以下代码的步骤

private void locationmap_Loaded(object sender, RoutedEventArgs e)
    {
        Microsoft.Phone.Maps.MapsSettings.ApplicationContext.ApplicationId = "yourapplicationID";
        Microsoft.Phone.Maps.MapsSettings.ApplicationContext.AuthenticationToken = "yourauthenticationtoken";
    }

如果添加此代码,它适用于所有位置。