2012-04-11 11 views
8

Im utilizzando Microsoft Service Configuration Editor per impostare la diagnostica (registrazione WCF) e non riesco a trovare un modo per impostare la dimensione massima del file?Registrazione WCF, impostare la dimensione massima del file?

Ho trovato il MaxSizeOfMessageToLog ma che non fa nulla per le dimensioni del file?

Edit 1: Secondo questo: http://msdn.microsoft.com/en-us/library/aa395205.aspx Ci dovrebbe essere un maxFileSizeKB a livello sharedListeners, ma quando colpisce lo spazio nel tag aggiuntivo non ho ricevuto la possibilità di digitare maxFileSizeKB?

Edit 2: Quando si aggiunge il maxFileSizeKB il serivce non si avvia più, invece mi metterò il seguente excetion:

'maxFileSizeKB' non è un attributo di configurazione valida per il tipo 'System.Diagnostics.XmlWriterTraceListener '. Descrizione: si è verificata un'eccezione non gestita durante l'esecuzione della richiesta Web corrente. Si prega di rivedere la traccia dello stack per ulteriori informazioni sull'errore e sulla sua origine nel codice. Dettagli eccezione: System.Configuration.ConfigurationErrorsException: 'maxFileSizeKB' non è un attributo di configurazione valido per il tipo 'System.Diagnostics.XmlWriterTraceListener'. Errore origine: Un'eccezione non gestita è stata generata durante l'esecuzione della richiesta Web corrente. Le informazioni relative all'origine e alla posizione dell'eccezione possono essere identificate utilizzando la traccia dello stack di eccezioni di seguito.

Edit 3:

ho dovuto scaricare il campione TraceListener circolare e includerlo nel mio progetto, non c'è costruito in fileSize limitatore.

mio config si presenta così ora:

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing"> 
     <listeners> 
      <add name="ServiceModelMessageLoggingListener"/> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel" switchValue="Warning,ActivityTracing" 
     propagateActivity="false"> 
     <listeners> 
      <add name="ServiceModelTraceListener"/> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_messages.svclog" 
     type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener" 
     name="ServiceModelMessageLoggingListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024"> 
     <filter type="" /> 
     </add> 
     <add initializeData="C:\My\MyRelease 0.31\Host\My.Host.Dev\web_tracelog.svclog" 
     type="Microsoft.Samples.ServiceModel.CircularTraceListener,CircularTraceListener" 
     name="ServiceModelTraceListener" traceOutputOptions="Timestamp" maxFileSizeKB="1024"> 
     <filter type="" /> 
     </add> 
    </sharedListeners> 

Questo è limitando il file di log dei messaggi, ma non il file di registro di traccia?

+0

potresti includere la sezione di configurazione? –

+0

btw - ecco il codice per 'CircularTraceListener': https://cbasetest.svn.codeplex.com/svn/SoftLibrary_Dev/SDFL/Reputation/RepuService/FrontEndCommon/CircularTraceListener.cs –

+0

btw, hai mai provato a utilizzare" Servizio Microsoft Editor di configurazione "per questa attività (" C: \ Programmi (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ NETFX 4.0 Strumenti \ SvcConfigEditor.exe ") –

risposta

11

È perché il collegamento fornito ha utilizzato un listener di traccia personalizzato ("Microsoft.ServiceModel.Samples.CircularTraceListener"), che ha una proprietà "maxFileSizeKB".

Non esiste una funzione incorporata per limitare/rollare i file svclog, quindi è davvero necessario utilizzare un listener di traccia personalizzato. Puoi usare l'esempio usato nel tuo link (leggi alla fine dell'articolo come scaricare il codice). O qui è another one che può essere utile.

+0

Oops hai aggiornato la tua domanda mentre stavo scrivendo :) – Fabske

7

Voglio solo aggiungere alla @Fabske risposta che inorder per questo al lavoro

1) Scaricare WCF campioni: http://go.microsoft.com/fwlink/?LinkId=150780

2) Aprire : \ WF_WCF_Samples \ WCF \ base \ Gestione \ CircularTracing

3) Generare la soluzione e prendete la CircularTraceListener.dll

4) Aggiungere che dll al progetto fa riferimento

5) Aggiorna la configurazione come mostrato http://msdn.microsoft.com/en-us/library/aa395205(v=vs.100).aspx

+2

Nota anche l'errore di namespace nell'articolo MSDN (come indicato da un commentatore), per non sprecare un sacco di tempo come ho cercato di capire perché il tuo progetto ha vinto " t run ... –

+0

L'ho fatto. Campione scaricato, compilato .dll, inserito nei riferimenti del mio progetto, ha fatto quella cosa di configurazione e ha curato l'errore di battitura (che non è più presente). Ma '' mxFileSizeKB'' è ancora contrassegnato come sconosciuto e non ottengo un file. – ecth

+1

Ok. Gestito. Il mio codice: http://pastebin.com/JeYE3rEt. '' maxFilesizeKB'' è ancora contrassegnato come sconosciuto ma funziona e il file rimane con le giuste dimensioni. Anche il mio switchValue è '' All'' e potresti voler settarlo a '' Informazioni'', '' Avvertenza'' o qualcosa del genere;) – ecth