C# 增加传递给调用的超时值,以通过UWP设备请求WCF服务

C# 增加传递给调用的超时值,以通过UWP设备请求WCF服务,c#,wcf,uwp,C#,Wcf,Uwp,我能够从测试控制台应用程序向WCF服务发送数据,而不会出现任何错误。WCF测试工具也可以正常工作。但是,当我尝试从我的通用Windows平台应用程序向WCF服务发送相同的字节数组时,出现以下错误: 请求通道在00:01:00之后尝试发送时超时。增加传递给请求调用的超时值或增加绑定上的SendTimeout值。分配给此操作的时间可能是较长超时的一部分 我已经研究了几个小时的解决方案,但我还是无法解决这个问题。我也不认为只向服务发送一个字节数组需要一分钟 以下是ServiceReferences.D

我能够从测试控制台应用程序向WCF服务发送数据,而不会出现任何错误。WCF测试工具也可以正常工作。但是,当我尝试从我的通用Windows平台应用程序向WCF服务发送相同的字节数组时,出现以下错误:

请求通道在00:01:00之后尝试发送时超时。增加传递给请求调用的超时值或增加绑定上的SendTimeout值。分配给此操作的时间可能是较长超时的一部分

我已经研究了几个小时的解决方案,但我还是无法解决这个问题。我也不认为只向服务发送一个字节数组需要一分钟

以下是ServiceReferences.Designer.ClientConfig文件:

<configuration>
  <configSections>
  </configSections>
  <system.serviceModel>
   <bindings>
    <basicHttpBinding>
     <binding name="IncreasedTimeOut" receiveTimeout="00:10:00" sendTimeout="00:10:00"
             openTimeout="00:10:00" closeTimeout="00:10:00" />
    </basicHttpBinding>
   </bindings>
  <services>
   <service name="DServis.DenemeServis">
    <endpoint
       address="http://***.com/Service.svc" binding="basicHttpBinding"
       bindingConfiguration="IncreasedTimeOut"
       contract="DenemeServis.IService"  />
   </service>
  </services>
 </system.serviceModel>
</configuration>
再也没有机会了。例外情况也是一样

我确信它与客户端相关,因为服务响应来自控制台应用程序的调用,正如我在文章开头所描述的。什么可能导致此问题

更新:

我在服务器端没有wcf跟踪错误日志(如预期的)。另一方面,我设法在类实现时设置超时。现在,我在尝试发送字节数组时收到“net\u http\u client\u execution\u error”。这给了我一个线索,设备在试图发送这些类型的数据时无法建立连接

为了更深入地讨论这个问题,我建立了ngrok来测试服务行为。当尝试从服务器检索最小数据时,设备应用程序再次抛出“net\u http\u client\u execution\u error”;但是,如果从测试控制台应用程序调用该方法,则不会出现错误。现在我确信这是一个设备问题,正在研究如何解决它。欢迎提出任何想法。

我想你可以试试:

  • 增加服务器端的sendTimeout值
  • 确认您没有网络通信错误。(最后,禁用防火墙客户端进行快速测试)
  • 启用WCF跟踪以查看频道的问题所在

  • 在web.config中设置服务器端绑定后,我必须在UWP客户端中增加sendtimeout,如下所示:

    databaseClient = new CategoryDatabase.CategoryServiceClient();
    databaseClient.Endpoint.Binding.SendTimeout = new TimeSpan(0, 10, 0);
    

    谢谢你的建议。我的服务器sendTimeout设置为10分钟,因此不会出现问题。设备上也没有网络通信错误,因为我可以发送和接收除字节数组以外的所有内容。我最后的机会是WCF跟踪。我已经在WCF service web.config上启用了它,但是我必须等到明天才能看到日志,因为系统管理员不在。如果我能抓住任何有用的东西,我会更新评论。@Doğa Gençer,我面临着类似的问题。你能解决你的问题吗?是的。我已经设法做到了,但我真的不认为这是一个过程。以下是webconfig中的绑定设置。希望有帮助:
    databaseClient = new CategoryDatabase.CategoryServiceClient();
    databaseClient.Endpoint.Binding.SendTimeout = new TimeSpan(0, 10, 0);