我在远程机器上有一个使用安全绑定的服务。我所有的服务配置都在配置文件中(我已经检查了,以确保正确的配置文件被调整。)我曾尝试让服务在3分钟后超时,但每次我发出的请求超过一分钟时,Postman都会给我一个通用的"无法得到任何响应"页面。(它甚至没有给我一个错误或堆栈跟踪。)这正好发生在1分钟。是的,我甚至用我手机上的秒表来验证它正好是一分钟。
在使用非安全绑定的不同环境中,我知道这个特定的调用大约需要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>
这些是从整个配置文件的片段,我可以张贴整个事情,如果有人认为这将是有帮助的。我还用XXX代替了客户的名字,因为我不确定这种事情的礼仪是什么。
我看过很多关于WCF超时的帖子,我的总体印象是他们神秘而挑剔。我还检查了托管该服务的站点的IIS限制,它的一般连接超时设置为120秒。
谢谢!
您应该使用WCF客户端工具
而不是使用postman这可能会给你更多的反馈
在我的特殊情况下,我是通过负载平衡器访问我的服务的。我没有尝试更改负载平衡器上的任何设置。相反,我决定使用托管该服务的特定机器来访问该服务。在此之后,我的超时设置被遵守,并且在调用完成之前我不再超时。
我不确定这对将来是否有帮助,这是相当具体的,但你永远不知道。