我有一个奇怪的问题,我无法深入了解问题。我希望SO的某个人可以给我一些建议
我们有一个wcf客户端使用自定义绑定调用我们无法控制的服务
几个月前,我们开始收到以下错误
收到对此的HTTP响应时发生错误 server url)这可能是由于服务端点绑定没有 使用HTTP协议。这也可能是由HTTP请求引起的 上下文被服务器中止(可能是由于服务 关闭)。有关详细信息,请参阅服务器日志。
对服务提供商说,他们说他们可以看到离开系统的消息,消息是正确的。就他们而言,这是我们的一个问题。
谷歌告诉我,问题通常是由于服务器端的延迟加载属性的序列化,但服务提供商告诉我这不是问题。
有没有人对我接下来要尝试的内容有任何建议?
客户端自定义绑定代码如下所示,以防为某人提供任何帮助。
private static Binding GetCustomBinding()
{
CustomBinding myBinding = new CustomBinding();
AsymmetricSecurityBindingElement asbe = new AsymmetricSecurityBindingElement();
asbe.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12;
asbe.InitiatorTokenParameters = new X509SecurityTokenParameters { InclusionMode = SecurityTokenInclusionMode.Never };
asbe.RecipientTokenParameters = new X509SecurityTokenParameters { InclusionMode = SecurityTokenInclusionMode.Never };
asbe.MessageProtectionOrder = MessageProtectionOrder.SignBeforeEncrypt;
asbe.SecurityHeaderLayout = SecurityHeaderLayout.Strict;
asbe.EnableUnsecuredResponse = true;
asbe.IncludeTimestamp = false;
asbe.SetKeyDerivation(false);
asbe.DefaultAlgorithmSuite = SecurityAlgorithmSuite.Basic128Rsa15;
asbe.EndpointSupportingTokenParameters.Signed.Add(new UserNameSecurityTokenParameters());
asbe.EndpointSupportingTokenParameters.Signed.Add(new X509SecurityTokenParameters());
myBinding.Elements.Add(asbe);
TextMessageEncodingBindingElement element = new TextMessageEncodingBindingElement(MessageVersion.Soap11, Encoding.UTF8);
element.ReaderQuotas.MaxStringContentLength = int.MaxValue;
element.ReaderQuotas.MaxDepth = 1000;
element.ReaderQuotas.MaxArrayLength = 1000;
myBinding.Elements.Add(element);
HttpsTransportBindingElement httpsBindingElement = new HttpsTransportBindingElement();
httpsBindingElement.AuthenticationScheme = System.Net.AuthenticationSchemes.Basic;
httpsBindingElement.KeepAliveEnabled = false;
httpsBindingElement.RequireClientCertificate = true;
myBinding.Elements.Add(httpsBindingElement);
httpsBindingElement.MaxReceivedMessageSize = int.MaxValue;
httpsBindingElement.MaxBufferSize = int.MaxValue;
return myBinding;
}
为你提供的任何帮助干杯,我已经没有想法了。
史蒂夫