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 at > http://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 at http://groups.google.com/group/castle-project-users?hl=en.
