2014-11-05 163 views
3

我消費使用basicHttpsbinding如下錯誤 - >握手失敗

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託管並具有位於服務器上的多個網站web服務。我使用.NET的形式現場調用代碼如下所示

var x = service.Client.GetResults({parameter}); 

運行此服務會返回結果約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> 

回答