1

我有一个 Windows Phone 应用程序,它使用 WCF 服务在数据库中获取和存储数据。我添加了对 WCF 服务的服务引用,VS 生成了客户端代理和配置文件。

当我尝试调用服务器上的方法时,问题就开始了。

第一次调用导致超时,服务器甚至没有收到请求。 只有在第二次调用中,服务器才会收到请求。

Win7MobileServiceClient client = new Win7MobileServiceClient();

client.GetUserCompleted += new EventHandler<ServiceReference1.GetUserCompletedEventArgs>(client_GetUserCompleted);

client.GetUserAsync(int.Parse(txtID.Text));

谢谢

4

1 回答 1

0

这可能是由于服务的预热过程。第一次调用 WCF 服务需要一些时间(我认为正在编译它)。如果您回收应用程序池,它将再次发生。

为了确保尝试这个

  1. 部署 WCF 服务
  2. 从 Windows 调用 WCF 服务
  3. 从 windows mobile 调用它

如果是这种情况,可能原因是 Windows 移动客户端中的默认超时可能小于标准(1 分钟)。您可以采取多种解决方案

  • 增加 windows 移动超时
  • 每次部署时调用服务(例如在 Selenium 中进行某种冒烟测试。这种方法的问题是在回收应用程序池后您将再次遇到同样的问题)

您可以检查这个类似的问题:WCF Performance Slow for the first call

于 2012-04-04T11:11:23.670 回答