WCF启动花费了太多时间
发布时间:2020-12-16 09:35:27 所属栏目:百科 来源:网络整理
导读:在所有呼叫执行非常快之后,WCF服务在第一次请求时大约需要5-6秒. 下面是我的WCF服务的客户端配置. 使用IIS主机. WSHttpBinding binding = new WSHttpBinding(); binding.SendTimeout = TimeSpan.FromMinutes(1); binding.OpenTimeout = TimeSpan.FromMinutes
在所有呼叫执行非常快之后,WCF服务在第一次请求时大约需要5-6秒.
下面是我的WCF服务的客户端配置. 使用IIS主机. WSHttpBinding binding = new WSHttpBinding(); binding.SendTimeout = TimeSpan.FromMinutes(1); binding.OpenTimeout = TimeSpan.FromMinutes(1); binding.CloseTimeout = TimeSpan.FromMinutes(1); binding.ReceiveTimeout = TimeSpan.FromMinutes(1); binding.AllowCookies = false; binding.BypassProxyOnLocal = false; binding.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard; binding.MessageEncoding = WSMessageEncoding.Mtom; binding.TextEncoding = System.Text.Encoding.UTF8; binding.UseDefaultWebProxy = true; binding.Name = "BasicHttpBinding_ILearningService"; binding.Security.Mode = SecurityMode.Transport; binding.Security.Transport.ClientCredentialType = HttpClientCredentialType.None; binding.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None; binding.Security.Transport.Realm = ""; 服务器端配置 <services> <service behaviorConfiguration="LearningServiceServiceBehavior" name="LearningService"> <host> <baseAddresses> <add baseAddress="https://xxxxx/LearningService.svc" /> </baseAddresses> </host> <endpoint address="" binding="wsHttpBinding" bindingConfiguration="TransportSecurity" contract="ILearningSuiteService"> <identity> <dns value="localhost" /> </identity> </endpoint> <endpoint address="mex" binding="mexHttpsBinding" contract="IMetadataExchange" /> </service> </services> <bindings> <wsHttpBinding> <binding name="TransportSecurity" messageEncoding="Mtom" sendTimeout="00:1:00" openTimeout="00:2:00"> <security mode="Transport"> <transport clientCredentialType="None" /> </security> </binding> </wsHttpBinding> </bindings> <behaviors> <serviceBehaviors> <behavior name="LearningServiceServiceBehavior"> <serviceMetadata httpsGetEnabled="true" httpGetEnabled="false" httpGetUrl="http://xxxxxxx/Metadata" httpsGetUrl="https://xxxxxxxx/Metadata" /> <serviceDebug includeExceptionDetailInFaults="true" /> </behavior> </serviceBehaviors> </behaviors> 解决方法
您可能会看到的另一个问题是,当您使用传输安全性时,每次创建新代理时都会在客户端上进行证书验证.例如,由于证书的撤销列表无法及时提供,证书验证是否可能很昂贵?
尝试关闭安全性,看看是否会改变行为 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |