我正在使用basicHttpsbinding
以下方式使用Web服务
EXCClient CreateClient()
{
var binding = new System.ServiceModel.BasicHttpsBinding();
binding.ReaderQuotas.MaxArrayLength = int.MaxValue;
binding.MaxReceivedMessageSize = int.MaxValue;
binding.UseDefaultWebProxy = false;
var endpoint = new System.ServiceModel.EndpointAddress("https://{siteName}/{service}");
var client = new EXCClient(binding, endpoint);
return client;
//return new EXCClient();
}
消费站点托管在IIS 7.5上,服务器上有多个站点。我正在使用.net表单网站,调用代码如下所示
var x = service.Client.GetResults({parameter});
运行此服务时,将返回约15分钟的结果,然后开始出现此错误。
向HTTPS:// {siteName} / {service} /发出HTTP请求时发生错误。这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配引起的
基础连接已关闭:发送时发生意外错误。---> System.IO.IOException:由于意外的数据包格式,握手失败。
如果我为站点回收应用程序池,则该服务将在大约15分钟后再次返回结果,然后再次开始失败。我的应用程序池没有任何内存限制。
的app.config
模样
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_EXC">
<security mode="Transport" />
</binding>
<binding name="BasicHttpBinding_EXC1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://vadrs.tax.utah.gov/vdx/" binding="basicHttpsBinding"
bindingConfiguration="BasicHttpBinding_EXC" contract="UTVehicleServices.EXC"
name="BasicHttpBinding_EXC" />
</client>
在“如何禁用SSL回退并仅将TLS用于.NET中的出站连接?(贵宾犬缓解) ”中找到了该问题的答案。我有其他Web服务调用正在设置以下代码,而没有回退
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
我必须按照答复中所述将协议类型设置为TLS。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句