"Could not get any response" 来自使用安全绑定的 WCF 服务,是否忽略了超时设置?

"Could not get any response" from WCF service using secure bindings, timeout settings ignored?

我在使用安全绑定的远程机器上有一项服务。我所有的服务配置都在配置文件中(我已经检查以确保调整了正确的配置文件。)我试图告诉服务在 3 分钟后超时,但每次我发出的请求都比等一下,Postman 给我通用的 "Could not get any response" 页面。 (它甚至没有给我错误或堆栈跟踪。)这正好发生在 1 分钟。是的,我什至用 phone 上的秒表来验证它正好是一分钟。

在使用非安全绑定的不同环境中,我知道这个特定的调用大约需要 90 秒。我只是需要这个安全的环境再等一会儿!

很抱歉,如果我的行话不准确,我是新手。

我的相关 WCF 服务配置文件如下所示:

  <service name="XXX.SolrIndexService.Host.Services.EventIndexService">
        <endpoint address="ajax"
            behaviorConfiguration="ServerReadCookie"
            binding="webHttpBinding"
            bindingConfiguration="webHttpsBinding"
            contract="XXX.SolrIndexService.DataContracts.IEventIndexService" />
  </service>

实际的绑定配置在这里:

  <webHttpBinding>
    <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true">
      <security mode="None" />
    </binding>
    <binding name="webHttpBindingUnsecure" crossDomainScriptAccessEnabled="true">
      <security mode="None" />
    </binding>
    <binding name="webHttpsBinding" crossDomainScriptAccessEnabled="true"
                closeTimeout="00:03:00"
                openTimeout="00:03:00"
                receiveTimeout="00:10:00"
                sendTimeout="00:03:00">

      <security mode="Transport" />
    </binding>
  </webHttpBinding>

这些是整个配置文件的片段,如果有人认为这有帮助,我可以 post 全部。我也用 XXX 代替了客户的名字,只是因为我不确定这种事情的礼仪是什么。

我看过很多关于 WCF 超时的 post,我的总体印象是它们神秘而挑剔。我还检查了托管该服务的站点的 IIS 限制,它的一般连接超时设置为 120 秒。

谢谢!

你应该使用 WCF Client tool

而不是使用邮递员

这可能会给您更多反馈

事实证明,在我的特定情况下,我是通过负载均衡器访问我的服务的。我没有尝试更改负载平衡器上的任何设置。相反,我决定使用托管它的特定机器来访问该服务。这样做之后,我的超时设置得到遵守,我不再在调用完成之前超时。

我不确定这是否会对以后的任何人有所帮助,它很具体,但你永远不知道。