Windows Phone 7, использующий веб-сервис WSDL - PullRequest
0 голосов
/ 16 октября 2011

Хорошо. Я уже писал несколько базовых общих веб-сервисов, но никогда не пытался использовать сторонние.Я пытаюсь потребить http://opendap.co -ops.nos.noaa.gov / axis / webservices /вестии / wsdl / Predictions.wsdl

Я не получаю никаких результатов назадиз этого что так всегда и не могу понять почему.Более странно, что он даже не достигает PredictionsClient_getPredictionsAndMetadataCompleted, когда я ставлю точку останова в коде, он даже не достигает ее.Любые предложения будут с благодарностью

    public void Bouy(double meters)   
    {   
        PredictionService.Parameters PredictionParams = new PredictionService.Parameters();   
        PredictionService.PredictionsPortTypeClient PredictionsClient = new PredictionService.PredictionsPortTypeClient();   

        GeoCoordinateWatcher gc = new GeoCoordinateWatcher(GeoPositionAccuracy.Default);   
        //gc.Position.Location.Latitude, gc.Position.Location.Longitude   
        GeoCoordinate myLocation = new GeoCoordinate(27.931631,-82.802582);   


        foreach (var bl in BouyLocation.GetAll())   
        {    
            GeoCoordinate otherLocation = new GeoCoordinate(bl.Lat, bl.Lon);   

                PredictionParams.beginDate = DateTime.Now.ToString("yyyyMMdd");   
                PredictionParams.endDate = DateTime.Now.AddDays(1.0).ToString("yyyyMMdd");   
                PredictionParams.stationId = bl.LocationID;   
                PredictionParams.timeZone = 0;   
                PredictionParams.unit = 1;   
                PredictionParams.dataInterval = 6;   
                PredictionsClient.getPredictionsAndMetadataCompleted += new EventHandler<PredictionService.getPredictionsAndMetadataCompletedEventArgs>(PredictionsClient_getPredictionsAndMetadataCompleted);   

                PredictionsClient.getPredictionsAndMetadataAsync(PredictionParams);   


            double mymeters = myLocation.GetDistanceTo(otherLocation);   
            if (mymeters < meters)   
            {   
                TextBlock DynTextBlock = new TextBlock   
                {   
                    Name = "Appearance" + bl.LocationID,   
                    Text = bl.LocationName + PredictionResult,   
                    TextWrapping = System.Windows.TextWrapping.Wrap,   
                    Margin = new Thickness(12, -6, 12, 0),   
                    Style = (Style)Resources["PhoneTextSubtleStyle"]   

                };   

                DynamicAppearance.Children.Add(DynTextBlock);   
                this.nearByLocations.Add(new BouyLocationModel() { LocationName = bl.LocationName, LocationID = bl.LocationID, Lat = bl.Lat, Lon = bl.Lon });   
            }   
        }   
        var test = nearByLocations;   
    }   

    void PredictionsClient_getPredictionsAndMetadataCompleted(object sender, PredictionService.getPredictionsAndMetadataCompletedEventArgs e)   
    {   
        string err = e.Error.ToString();   

        PredictionResult = e.Result.ToString();   
    }  

1 Ответ

0 голосов
/ 18 октября 2011

Взглянув на код, который у вас есть, я думаю, что вы использовали импорт ServiceReference для автоматической сборки классов для вас?

К сожалению, я обнаружил, что это довольно темпераментно в WP7, и единственный способ заставить его работать - это подключить его к службе Microsoft WCF. Подключение к чему-либо другому просто не работает.

Если вы выполняете поиск в Google, на разных страницах рассказывается о том, что он не работает, и о способах его решения (что я не смог получить).

Однако, есть способы обойти это, но это не так просто, как автоматически сгенерированные вещи. В основном вы делаете вещи вручную.

Хотя есть и другие способы создания веб-службы вручную, я следовал приведенным ниже указаниям, которые хорошо работали: http://zetitle.wordpress.com/2010/10/14/using-reactive-extensions-with-webrequest/

Вам нужно будет самостоятельно проанализировать ответ, но XML для LINQ действительно хорошо для этого работает.

Надеюсь, что это поможет, или, может быть, у кого-то будет решение, потому что мне интересно знать, как работать тоже

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...