No, not really. The actual client is a Flex/AIR application.

On Oct 13, 10:22 am, Craig Neuwirt <[email protected]> wrote:
> Do you happen to have  a client the performs the upload with the image 
> culprit?  If not, I can write one.
>
> On Oct 12, 2010, at 1:28 PM, João Bragança wrote:
>
>
>
>
>
>
>
> > Here's a repo of the bug. Thanks again for taking a look!
>
> > ---------- Forwarded message ----------
> > From: Craig Neuwirt <[email protected]>
> > Date: Oct 12, 11:00 am
> > Subject: Wcf Facility, DefaultBinding and Quota Exceeded
> > To: Castle Project Users
>
> > Any chance you can zip me a subset of your app so I can run it locally
> > and try and find a solution for you? Just enough to demonstrate the i
>
> > On Oct 12, 2010, at 11:24 AM, João Bragança wrote:
>
> > > Craig,
>
> > > In OnOpening the serviceHost doesn't have any bindings. I tried it in
> > > OnOpened but I got the same error.
>
> > > On Oct 12, 8:06 am, Craig Neuwirt <[email protected]> wrote:
> > >> Good question.  WCF makes it a real pain to manipulate the quota stuff.
>
> > >> I am not sure the best way to handle this, but this might work for you
>
> > >> create
>
> > >> public class AdjustQuotasBehavior : AbstractServiceHostAware
> > >> {
> > >>     protected override Opening(ServiceHost serviceHost)
> > >>     {
> > >>         foreach (var endpoint in serviceHost.Description.Endpoints)
> > >>         {
> > >>             var binding = endpoint.Binding as BasicHttpBinding;
> > >>             if (binding != null)
> > >>             {
> > >>                    binding.ReaderQuotas.MaxArrayLength = FIVE_MEGABYTES;
> > >>                   // Do same for other
> > >>             }
> > >>         }
> > >>     }
>
> > >> }
>
> > >> And register this component in container
>
> > >> container.Register(Component.For< AdjustQuotasBehavior>())
>
> > >> I have never tried this though.  I could add service binding inference 
> > >> from base address like I did with clients, but this would only work for 
> > >> 3.5
> > >> since I used the default endpoint support out of the box for WCF 4.0
>
> > >> Let me know how this goes and we'll find another way if this doesn't work
>
> > >> good luck,
> > >>   craig
>
> > >> On Oct 12, 2010, at 9:38 AM, João Bragança wrote:
>
> > >>> What is the simplest way to override this? I really don't want to
> > >>> configure all the endpoints by hand if I can avoid it.
>
> > >>> On Oct 12, 6:34 am, Craig Neuwirt <[email protected]> wrote:
> > >>>> If I recall, the DefaultBinding stuff comes into play when you specify 
> > >>>> endpoints without bindings.  I think in your case, the default 
> > >>>> endpoint logic is getting applied which is based on the base address 
> > >>>> and not the default binding.
>
> > >>>> On Oct 11, 2010, at 7:23 PM, João Bragança wrote:
>
> > >>>>> I have a WCF service where I need to upload images. I am configuring
> > >>>>> it like so:
>
> > >>>>>    public class WcfServicesInstaller : IWindsorInstaller
> > >>>>>    {
> > >>>>>            private const int FIVE_MEGABYTES = 1024*1024*5;
>
> > >>>>>            private const string SERVICE_SUFFIX = "Service";
>
> > >>>>>            #region IWindsorInstaller Members
>
> > >>>>>            public void Install(IWindsorContainer container, 
> > >>>>> IConfigurationStore
> > >>>>> store)
> > >>>>>            {
> > >>>>>                    container.AddFacility<WcfFacility>(f => 
> > >>>>> f.DefaultBinding = new
> > >>>>> BasicHttpBinding
> > >>>>>                                                                       
> > >>>>>              {
>
> > >>>>> MaxReceivedMessageSize = FIVE_MEGABYTES,
> > >>>>>                                                                       
> > >>>>>                      // 5
> > >>>>> megs,
>
> > >>>>> MaxBufferPoolSize = FIVE_MEGABYTES,
>
> > >>>>> MaxBufferSize = FIVE_MEGABYTES,
>
> > >>>>> ReaderQuotas = new XmlDictionaryReaderQuotas
>
> > >>>>>                            {
>
> > >>>>>                                    MaxArrayLength = FIVE_MEGABYTES,
>
> > >>>>>                                    MaxDepth = FIVE_MEGABYTES,
>
> > >>>>>                                    MaxStringContentLength = 
> > >>>>> FIVE_MEGABYTES,
>
> > >>>>>                                    MaxNameTableCharCount = 
> > >>>>> FIVE_MEGABYTES,
>
> > >>>>>                                    MaxBytesPerRead = FIVE_MEGABYTES
>
> > >>>>>                            }
> > >>>>>                                                                       
> > >>>>>              })
> > >>>>>                            
> > >>>>> .Register(AllTypes.FromAssemblyContaining<IAuthenticationService>()
> > >>>>>                                            .Where(type => 
> > >>>>> type.Name.EndsWith(SERVICE_SUFFIX))
> > >>>>>                                            
> > >>>>> .WithService.FirstInterface()
> > >>>>>                                            .Configure(r => 
> > >>>>> NameService(r).LifeStyle.Transient),
> > >>>>>                                      Component.For<IServiceBehavior>()
> > >>>>>                                            
> > >>>>> .ImplementedBy<ServiceDebugBehavior>()
> > >>>>>                                            .DependsOn(new
> > >>>>>                                                            {
> > >>>>>                                                                    
> > >>>>> IncludeExceptionDetailInFaults = true,
> > >>>>>                                                                    
> > >>>>> HttpHelpPageEnabled = true,
> > >>>>>                                                            }),
> > >>>>>                                      Component.For<IServiceBehavior>()
> > >>>>>                                            
> > >>>>> .ImplementedBy<ServiceMetadataBehavior>()
> > >>>>>                                            .DependsOn(new
> > >>>>>                                                            {
> > >>>>>                                                                    
> > >>>>> HttpGetEnabled = true
> > >>>>>                                                            }),
>
> > >>>>> Component.For<IServiceBehavior>().ImplementedBy<UnitOfWorkBehavior>());
> > >>>>>            }
>
> > >>>>>            #endregion
>
> > >>>>>            private static ComponentRegistration<object>
> > >>>>> NameService(ComponentRegistration<object> registration)
> > >>>>>            {
> > >>>>>                    var implementation = registration.Implementation;
> > >>>>>                    registration.Named(implementation.Name.Substring(0,
> > >>>>> implementation.Name.Length - SERVICE_SUFFIX.Length)
> > >>>>>                                            .ToLowerInvariant() + 
> > >>>>> ".svc");
> > >>>>>                    return registration;
> > >>>>>            }
> > >>>>>    }
>
> > >>>>> But when I upload one I get everyone's second favorite wcf exception:
>
> > >>>>> The formatter threw an exception while trying to deserialize the
> > >>>>> message: There was an error while trying to deserialize parameter
> > >>>>>http://tempuri.org/:Data. The InnerException message was 'There was an
> > >>>>> error deserializing the object of type System.Byte[]. The maximum
> > >>>>> array length quota (16384) has been exceeded while reading XML data.
> > >>>>> This quota may be increased by changing the MaxArrayLength property on
> > >>>>> the XmlDictionaryReaderQuotas object used when creating the XML
> > >>>>> reader. Line 1, position 26406.
>
> > >>>>> Is the wcf facility ignoring my DefaultBinding when using the "look no
> > >>>>> config" method? Or am I doing something else wrong?
>
> > >>>>> --
> > >>>>> You received this message because you are subscribed to the Google 
> > >>>>> Groups "Castle Project Users" group.
> > >>>>> To post to this group, send email to 
> > >>>>> [email protected].
> > >>>>> To unsubscribe from this group, send email to 
> > >>>>> [email protected].
> > >>>>> For more options, visit this group 
> > >>>>> athttp://groups.google.com/group/castle-project-users?hl=en.
>
> > >>> --
> > >>> You received this message because you are subscribed to the Google 
> > >>> Groups "Castle Project Users" group.
> > >>> To post to this group, send email to 
> > >>> [email protected].
> > >>> To unsubscribe from this group, send email to 
> > >>> [email protected].
> > >>> For more options, visit this group 
> > >>> athttp://groups.google.com/group/castle-project-users?hl=en.
>
> > > --
> > > You received this message because you are subscribed to the Google Groups 
> > > "Castle Project Users" group.
> > > To post to this group, send email to 
> > > [email protected].
> > > To unsubscribe from this group, send email to 
> > > [email protected].
> > > For more options, visit this group 
> > > athttp://groups.google.com/group/castle-project-users?hl=en.
>
> > --
> > You received this message because you are subscribed to the Google Groups 
> > "Castle Project Users" group.
> > To post to this group, send email to [email protected].
> > To unsubscribe from this group, send email to 
> > [email protected].
> > For more options, visit this group 
> > athttp://groups.google.com/group/castle-project-users?hl=en.
> > <IHateWcfConfiguration.zip>

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to