HDSoftware Skrevet 5. juli 2012 Del Skrevet 5. juli 2012 Folkens. Jeg sliter skikkelig med nevnte problem. Jeg har altså en web service gående på en ekster server som skal ta imot faktura med vedlegg. Datamengen som sendes kan dærfor være stor. Hvis jeg sender bare en faktura og et knøttlite vedlegg (10K) så funker det som bare det. Jeg har selvsagt googlet dette og det kommer en masse treff, men ingen som går direkte på det jeg trenger så vidt jeg kan se. Ok. Her er detaljene: API på web service er prototypet slik: [serviceCotract] public interface IInvoiceDist { [OperationContract] void SendInvoices(List<InvoiceRecord> pInvoices, List<AttachmentRecord> pAttachments); } Som dere ser så sendes en liste med invoices og en liste med tilhørende vedlegg Jeg har sett rundt omkring i andre web servicer som jeg bruker og funnet at man skal sette max størrelser her og der. Følgelig ser min App.Config ut slik: <system.serviceModel> <bindings> <basicHttpBinding> <binding name="BasicHttpBinding_IInvoiceDist" closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> .... Som dere ser så har jeg altså satt max størrelser helt opp til 2GB og det burde jaggu holde... Så hva kan jeg da ha gjort feil ? Mangler jeg noe i denne configen ? Jeg ser også at mange snakker om web.config. Men når jeg åpner den filen så inneholder den jo ikke noe som helst i nærheten av dette. Bare en masse andre settings. Ingen BINDING seksjon i det hele tatt. Jeg har alikevel en fæølelse av at det fullt mulig buirde vært plassert tilsvarende verdier i den filen også, men har ikke noe som helst aning om hvor og under hvilke tags dette skulel vært. Noen sm kan hjelpe meg litt her.... Takker for alle bidrag Lenke til kommentar
The Jackal Skrevet 6. juli 2012 Del Skrevet 6. juli 2012 (endret) Om dette er den eneste configen du har under &--#60;system.serviceModel&--#62; så vil den ikke bli tatt i bruk, først og fremst fordi den har et navn og dermed er ikke den default for basicHttpBindings. Du bør som minimum har noe slikt som dette: <system.serviceModel> <services> <service name="Full.Namespace.InvoiceDist"> <endpoint binding="basicHttpBinding" contract="Full.Namespace.IInvoiceDist" /> </service> </services> <bindings> <basicHttpBinding> <binding closeTimeout="00:01:00" openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" allowCookies="false" bypassProxyOnLocal="false" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="true"> <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" /> </binding> </basicHttpBinding> </bindings> </system.serviceModel> Legg merke til at jeg har tatt bort name slik at dette blir default for basicHttpBindings. Du kan bruke et navn, men da må du bruke bindingConfiguration propertyen på endpoint for å angi hvilken named binding du skal bruke. Endret 6. juli 2012 av The Jackal Lenke til kommentar
The Jackal Skrevet 6. juli 2012 Del Skrevet 6. juli 2012 Uhm...forresten...web servicen din hostes i IIS eller lignende? app.config har jack shit å si der. Det er i web.config konfigurasjonen skal ligge. Du kan jo prøve å øke maxDepth noe også. Lenke til kommentar
HDSoftware Skrevet 9. juli 2012 Forfatter Del Skrevet 9. juli 2012 Dette var veldig nyttig!! Takker. Det funker - nesten - . Nå får jeg en ny melding hvis filen er litt større. Jeg har laget et vedlegg på litt over 5MB og nå får jeg denne: - $exception {"Innholdstypen text/html til svarmeldingen er ikke i samsvar med innholdstypen til bindingen (text/xml; charset=utf-8). Hvis du bruker en egendefinert koder, må du kontrollere at IsContentTypeSupported-metoden er riktig implementert...... Videre sier inner exception dette: Den eksterne serveren returnerte feilen (500) Intern serverfeil ved System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)" Jeg har satt alle timeout parameterene (jeg kjenner til ) til 10 minutter. Lenke til kommentar
The Jackal Skrevet 10. juli 2012 Del Skrevet 10. juli 2012 Muligens dette som er feil? http://stackoverflow.com/questions/8637652/wcf-charset-utf-8-of-the-response-message-does-not-match-the-content-type-of-the Generelt sett forresten...ta bort alle ting som du ikke trenger å gjøre om på fra konfigurasjonen. Altså, om du ikke spesifikt ønsker å sette useDefaultWebProxy=true på bindingen, så ta det bort. Det gjør ting litt mer oversiktelig og enklere å forstå. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå