"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
而不是使用邮递员
这可能会给您更多反馈
事实证明,在我的特定情况下,我是通过负载均衡器访问我的服务的。我没有尝试更改负载平衡器上的任何设置。相反,我决定使用托管它的特定机器来访问该服务。这样做之后,我的超时设置得到遵守,我不再在调用完成之前超时。
我不确定这是否会对以后的任何人有所帮助,它很具体,但你永远不知道。
我在使用安全绑定的远程机器上有一项服务。我所有的服务配置都在配置文件中(我已经检查以确保调整了正确的配置文件。)我试图告诉服务在 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
而不是使用邮递员这可能会给您更多反馈
事实证明,在我的特定情况下,我是通过负载均衡器访问我的服务的。我没有尝试更改负载平衡器上的任何设置。相反,我决定使用托管它的特定机器来访问该服务。这样做之后,我的超时设置得到遵守,我不再在调用完成之前超时。
我不确定这是否会对以后的任何人有所帮助,它很具体,但你永远不知道。