C# webservice异步调用
我有一个Web服务正在运行,它的一个方法在被调用时不会立即返回。它在有数据时返回。一旦返回,客户机将再次调用它,以便在服务有数据时向客户机提供数据。这是为了避免投票。但问题是,它在emulator中工作得很好,而在设备中,尽管WebService不返回,但客户端在下面的函数中结束,从而导致空异常C# webservice异步调用,c#,web-services,windows-phone-7,C#,Web Services,Windows Phone 7,我有一个Web服务正在运行,它的一个方法在被调用时不会立即返回。它在有数据时返回。一旦返回,客户机将再次调用它,以便在服务有数据时向客户机提供数据。这是为了避免投票。但问题是,它在emulator中工作得很好,而在设备中,尽管WebService不返回,但客户端在下面的函数中结束,从而导致空异常 public string Endgetstatus(System.IAsyncResult result) { object[] _args = new object[0]; str
public string Endgetstatus(System.IAsyncResult result)
{
object[] _args = new object[0];
string _result = ((string)(base.EndInvoke("getstatus", _args, result)));
return _result;
}
这就是我调用异步函数的方式,该函数在有数据时返回,否则将不会返回
client.getstatusCompleted += new EventHandler<getstatusCompletedEventArgs>(updatereceived);
client.getstatusAsync();//this returns only when it has data
一分钟后,客户机结束在
public string Endgetstatus(System.IAsyncResult result) {
导致参数null异常,尽管webservice不返回
有人能告诉我应该怎么做才能在emulator上正常工作吗
请注意,这是关于windows phone 7和silverlight c的。我相信默认情况下,WebClient将在1分钟后超时。
仿真器和设备行为之间的区别只是平台的不同,还是您的操作/计时方式不同
YOY可能想考虑原始的ToStudio通知,让您的应用程序知道有一些新数据要请求,因为这不需要从设备中轮询。
模拟器和设备之间的行为没有差别。我最初使用推送通知,但它非常不稳定,使用它我无法保证我的解决方案会起作用。这就是我选择这种架构的原因,客户机将在webservice中调用一个方法,并且它只在有数据时返回。@user641247您是否尝试过运行网络跟踪或类似程序(可能使用Fiddler或WireShark)来查找其中的差异?public string Endgetstatus(System.IAsyncResult result) {