Wcf 获得;发送请求时出错";在Windows Mobile 10模拟器和手机中

Wcf 获得;发送请求时出错";在Windows Mobile 10模拟器和手机中,wcf,service,uwp,emulation,windows-10-mobile,Wcf,Service,Uwp,Emulation,Windows 10 Mobile,当我的UWP应用程序尝试与WCF服务应用程序(从数据库服务器检索信息)通信时,我收到一条错误消息“发送请求时出错”。当应用程序/服务组合在Windows Mobile 10 Emulator和phone中运行时,会发生此错误。另一方面,这种应用/服务组合在本地计算机(我的Windows 10桌面PC)上运行良好。当应用程序/服务在模拟器或手机中运行时,WCF服务可能没有运行。如果可能的话,我想解决这个问题。如果这是不可能的,请建议一个替代方案 我试图实现的是使用Windows 10手机连接到我们

当我的UWP应用程序尝试与WCF服务应用程序(从数据库服务器检索信息)通信时,我收到一条错误消息“发送请求时出错”。当应用程序/服务组合在Windows Mobile 10 Emulator和phone中运行时,会发生此错误。另一方面,这种应用/服务组合在本地计算机(我的Windows 10桌面PC)上运行良好。当应用程序/服务在模拟器或手机中运行时,WCF服务可能没有运行。如果可能的话,我想解决这个问题。如果这是不可能的,请建议一个替代方案

我试图实现的是使用Windows 10手机连接到我们的数据库服务器(SQL server)(全部在本地WiFi网络中,而不是通过internet)以查看或更新数据库中的数据。不幸的是,UWP不允许UWP应用程序直接连接到数据库服务器,如本网页所述:

根据该网页,我需要创建一个WCF服务应用程序,作为UWP应用程序和数据库服务器之间的中间人。这就是为什么除了我的UWP应用程序之外,我还需要一个WCF服务应用程序的原因

请注意,我已经在上面显示的网页中尝试了示例程序。不幸的是,它与我的应用程序存在相同的问题

如上所述,示例程序和我的应用程序在本地计算机中都可以正常工作(数据库位于不在本地计算机中的数据库服务器中)。但在Windows emulator或Windows phone中运行时,两者都显示相同的错误

我试图通过使用一个不连接到数据库服务器的裸体WCF服务应用程序来缩小范围,以排除数据库连接与此问题有关。裸骨WCF服务应用程序只是将硬编码的测试数据返回给UWP应用程序。但它仍然存在同样的问题。这意味着问题与数据库连接无关

裸骨WCF服务应用程序是使用WCF服务应用程序模板创建的。我只重命名了这些类(从Service1/IService到DbService/IDbService)。没什么

以下示例中的GetDataAsync(…)语句会触发该错误。它位于UWP应用程序的MainPage.xaml.cs的onload()事件处理程序中:

private async void OnLoaded(object sender, RoutedEventArgs e)
   {
   try
      {
      RefDbService.DbServiceClient client1 = new RefDbService.DbServiceClient();
      String sTestMsg = await client1.GetDataAsync( 12345 );
         // The above statement triggers the error in Emulator or in phone.
      this.lblDebugMsg.Text = sTestMsg;
      }
   catch( Exception ex )
      {
      this.lblDebugMsg.Text = ex.Message;
      }
   }
提前感谢您的帮助


Jay Chan

我的上一封邮件有一个错误的URL(重复的URL)。以下内容已更正:


我终于创建了一个小样本程序(WCF服务和UWP应用程序),它实际上可以工作。如果有人需要做同样的事情,您需要按照本教程学习如何编写与控制台应用程序一起使用的WCF Windows服务库(需要主机程序),然后按照本网页学习如何将其转换为在IIS下运行的WCF web服务应用程序并使用UWP。每当您更改WCF服务的配置时,请记住更新应用程序的服务引用。

您是否检查了客户端和服务器之间的网络连接?这似乎是一个网络问题。很抱歉,我可能在我原来的帖子中不清楚。UWP和WCF服务在同一设备(本地计算机、或Windows Mobile 10 Emulator或真正的Windows 10 Phone)中运行。但是数据库服务器位于不同的计算机中(在同一局域网内)。我刚刚改变了我的帖子,以反映这些额外的信息。换句话说,这不是网络问题,因为如果组合在本地计算机上运行(数据库服务器在另一台计算机上),UWP和WCF服务从数据库服务器检索信息没有问题。您是如何在Windows 10 Mobile中托管WCF服务的?好吧,这是不可能的,因为我们现在无法在Windows10手机上运行经典应用程序。对于常见情况,WCF服务应托管在服务器上,例如托管数据库的服务器。如果我正确理解您的说法,我应将WCF服务移动到服务器中,然后要求UWP应用程序与WCF服务通信。这听起来很合理。我将在本周晚些时候尝试看看它是如何工作的。谢谢你的建议。我终于创建了一个小样本程序(WCF服务和UWP应用程序),它实际上可以工作。如果有人需要做同样的事情,您需要按照本教程学习如何编写与控制台应用程序一起使用的WCF服务,然后按照本网页学习如何将其转换为在IIS下运行的WCF服务应用程序。请记住,无论何时更改WCF服务的配置,都要更新应用程序的服务引用。