小编Rus*_*ker的帖子

将HTTP请求发送到https时发生错误 - >握手失败

我正在使用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();
    }
Run Code Online (Sandbox Code Playgroud)

使用站点托管在IIS 7.5上,并且在服务器上有多个站点.我正在使用.net表单站点,调用代码如下所示

var x = service.Client.GetResults({parameter});
Run Code Online (Sandbox Code Playgroud)

运行此服务时将返回大约15分钟的结果,然后开始出现此错误.

将HTTP请求发送到https:// {siteName}/{service} /时发生错误.这可能是由于在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>
Run Code Online (Sandbox Code Playgroud)

c# wcf basichttpbinding

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

basichttpbinding ×1

c# ×1

wcf ×1