Mi collego al servizio principale di Tridion utilizzando System.ServiceModel.WsHttpBinding. Il servizio verrà utilizzato solo da utenti autenticati e probabilmente solo dal codice che controllo. Devo scegliere i valori per le seguentiCome devo decidere le quote per il bind del servizio principale di Tridion?
- (default 524.288 byte)
- MaxReceivedMessageSize (default 65.536 byte)
- ReaderQuotas. MaxArrayLength (predefinito 16384 byte)
- ReaderQuotas. MaxBytesPerRead (predefinito 4096 byte)
- ReaderQuotas. MaxNameTableCharCount (predefinito 16384 byte)
- ReaderQuotas. MaxStringContentLength (default 8192 byte)
Gli esempi di codice ho visto per l'utilizzo del servizio principale invariabilmente impostato almeno alcuni di questi per valori maggiori rispetto ai valori predefiniti, ad esempio 4Mb. Ciò è dovuto a problemi noti quando vengono utilizzati altri valori, ad esempio i valori predefiniti?
MaxBufferPoolSize consente di evitare eccessive raccolte di dati inutili. Si tratta semplicemente di monitorare i GC e l'ottimizzazione basata su questo?
MaxReceivedMessageSize, MaxArrayLength e MaxBytesPerRead sono lì per difendersi dagli attacchi Dos, quindi nel mio scenario, forse posso migliorare il throughput aumentandoli. Un numero davvero grande potrebbe aiutare?
MaxNameTableCharCount sembra essere lì per impedire la crescita incontrollata di qualcosa che potresti non voler crescere in modo incontrollato, quindi forse lasciare il default sarebbe una buona cosa.
La documentazione su MaxStringContentLength non specifica cosa accade se si supera la quota. Presumibilmente ReadContentAsString fallirà in qualche modo, quindi forse questo valore dovrebbe essere grande.
Quindi, dovrei lasciare questi valori ai loro valori predefiniti? Questo mi causerà problemi? Dovrei aumentarli a grandi valori? Questo aiuterà con il throughput ecc. O è più probabile che causi altri problemi?
Leggendo alcune delle risposte, ho ora la sensazione che l'ottimizzazione di queste impostazioni sia così necessaria (almeno per il lavoro di produzione) che forse le implementazioni di zero-config (solo il codice) potrebbero essere un anti-pattern. Pensieri? –