好的我以前写过一些基本的通用网络服务,但我从来没有尝试过使用第三方服务。 我想要消耗的是 http://opendap.co-ops.nos.noaa.gov/axis/webservices/predictions/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();
}
答案 0 :(得分:0)
重新阅读您在此处的代码我认为您已使用ServiceReference导入为您自动构建类?
不幸的是我发现这对WP7来说是相当不稳定的,我实际上让它工作的唯一方法是将它连接到Microsoft WCF服务。连接到其他任何东西都不起作用。
如果你进行谷歌搜索,有各种各样的网页谈论它不起作用的事实和解决方法(我无法开展工作)。
然而,有很多方法,但它并不像自动生成的东西那么简单。基本上你手动做事。
虽然还有其他方法可以手动创建Web服务,但我所做的是遵循以下信息,这些信息运行良好:http://zetitle.wordpress.com/2010/10/14/using-reactive-extensions-with-webrequest/
您需要自己解析响应,但XML到LINQ的效果非常好。
希望有所帮助,或者有人会有解决方案,因为我有兴趣了解如何开展工作