2011-01-13 6 views
0

Ich habe die folgende Klasse, die Sicherheit, Codierung und Token-Parameter konfiguriert, aber ich habe Probleme beim Hinzufügen einer BasicHttpBinding, um eine MaxReceivedMessageSize anzugeben. Jeder Einblick würde geschätzt werden.WCF-Client-Bindungskonfiguration im Programmcode

public class MultiAuthenticationFactorBinding 
{ 
    public static Binding CreateMultiFactorAuthenticationBinding() 
    { 
     HttpsTransportBindingElement httpTransport = new HttpsTransportBindingElement(); 
     CustomBinding binding = new CustomBinding(); 
     binding.Name = "myCustomBinding"; 

     TransportSecurityBindingElement messageSecurity = TransportSecurityBindingElement.CreateUserNameOverTransportBindingElement(); 
     messageSecurity.AllowInsecureTransport = true; 
     messageSecurity.EnableUnsecuredResponse = true; 
     messageSecurity.MessageSecurityVersion = MessageSecurityVersion.WSSecurity11WSTrust13WSSecureConversation13WSSecurityPolicy12; 
     messageSecurity.SecurityHeaderLayout = SecurityHeaderLayout.Strict; 
     messageSecurity.IncludeTimestamp = true; 
     messageSecurity.SetKeyDerivation(false); 

     TextMessageEncodingBindingElement Quota = new TextMessageEncodingBindingElement(MessageVersion.Soap11, System.Text.Encoding.UTF8); 
     Quota.ReaderQuotas.MaxDepth = 32; 
     Quota.ReaderQuotas.MaxStringContentLength = Int32.MaxValue; 
     Quota.ReaderQuotas.MaxArrayLength = 16384; 
     Quota.ReaderQuotas.MaxBytesPerRead = 4096; 
     Quota.ReaderQuotas.MaxNameTableCharCount = 16384; 


     X509SecurityTokenParameters clientX509SupportingTokenParameters = new X509SecurityTokenParameters(); 
     clientX509SupportingTokenParameters.InclusionMode = SecurityTokenInclusionMode.AlwaysToRecipient; 
     clientX509SupportingTokenParameters.RequireDerivedKeys = false; 
     messageSecurity.EndpointSupportingTokenParameters.Endorsing.Add(clientX509SupportingTokenParameters); 
     //binding.ReceiveTimeout = new TimeSpan(0,0,300); 
     binding.Elements.Add(Quota); 
     binding.Elements.Add(messageSecurity); 
     binding.Elements.Add(httpTransport); 
     return binding; 
    } 
} 
+0

diese httpTransport.MaxReceivedMessageSize – Gaven

Antwort

1

Wenn Sie angeben müssen MaxReceivedMessageSize Sie es auf Ihrem Transportbindungselement tun können - HttpsTransportBindingElement. Sie können der Bindung keine Bindung hinzufügen.

+0

Dank helfen würde vielleicht zu erstellen. Ich brauchte nur diese Zeile hinzuzufügen. httpTransport.MaxReceivedMessageSize = Int32.MaxValue; und alles ist wieder in Ordnung mit der Welt. – smarsha

0

fand gerade diese eine Basichttpbinding

BasicHttpBinding Basicbinding = new BasicHttpBinding(BasicHttpSecurityMode.None); 
Basicbinding.MaxReceivedMessageSize = 10000000; 
Verwandte Themen