2012-06-05 17 views
6

Abbiamo un servizio WCF funzionante da mesi. Proprio questa mattina, le chiamate a questo servizio hanno iniziato a fallire con il server proxy che riportava "connessione ripristinata tramite peer" (502). Stranamente non ci sono voci di registro IIS per le connessioni interrotte, sebbene siamo in grado di rilevarle con WireShark. Quindi sembra che il filo stia morendo, senza lasciare traccia.Connessione ripristinata dal peer (502) quando si contatta il servizio WCF in IIS 7.5

Il metodo Web problematico era il recupero di 100 record di database. Abbiamo scoperto che limitando i risultati a 20 record funziona come previsto. Sospetto che ci sia un timeout in gioco, ma senza eccezioni o traceback è molto difficile sapere.

Qualcuno ha provato questo? Qualche suggerimento su come risolverlo?

risposta

16

È possibile attivare la diagnostica WCF sul servizio per ottenere ulteriori dettagli sulle eccezioni.

per farti andare rapidamente - nel vostro web (o app) config:

1) Aggiungi sezione System.Diagnostics ovunque sotto elemento di configurazione. È possibile sostituire il percorso con il quale percorso si desidera archiviare i file.

<system.diagnostics> 
    <sources> 
     <source name="System.ServiceModel.MessageLogging" switchValue="Warning, ActivityTracing"> 
     <listeners> 
      <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
      <filter type="" /> 
      </add> 
      <add name="ServiceModelMessageLoggingListener"> 
      <filter type="" /> 
      </add> 
     </listeners> 
     </source> 
     <source name="System.ServiceModel" switchValue="Warning, ActivityTracing" propagateActivity="true"> 
     <listeners> 
      <add type="System.Diagnostics.DefaultTraceListener" name="Default"> 
      <filter type="" /> 
      </add> 
      <add name="ServiceModelTraceListener"> 
      <filter type="" /> 
      </add> 
     </listeners> 
     </source> 
    </sources> 
    <sharedListeners> 
     <add initializeData="C:\temp\services_messages.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelMessageLoggingListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack"> 
     <filter type="" /> 
     </add> 
     <add initializeData="C:\temp\services_tracelog.svclog" type="System.Diagnostics.XmlWriterTraceListener, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="ServiceModelTraceListener" traceOutputOptions="LogicalOperationStack, DateTime, Timestamp, ProcessId, ThreadId, Callstack"> 
     <filter type="" /> 
     </add> 
    </sharedListeners> 
    </system.diagnostics> 

2) Sotto System.ServiceModel aggiungere seguente:

<diagnostics wmiProviderEnabled="false"> 
     <messageLogging logEntireMessage="true" logMalformedMessages="true" logMessagesAtServiceLevel="true" logMessagesAtTransportLevel="true" /> 
    </diagnostics> 

3) in C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ iniziare SvcTraceViewer.exe . Caricare sia la traccia del messaggio (services_messages.svclog) che il registro di traccia del servizio (services_tracelog.svclog). È possibile trascinare i file rilasciati nello strumento o aprirne uno quindi aggiungerne altri

4) Cercare lettere in grassetto rosso per un problema.

Se si desidera rendere più appetibile la modifica della configurazione WCF, è possibile utilizzare SvcConfigEditor.exe che si trova nella stessa cartella di SvcTraceViewer.exe (# 3). Basta aprire il file di configurazione e dovresti vedere la cartella Diagnostics che ti permetterà di avviare/fermare e configurare la diagnostica.

+1

Grazie! Finalmente sono stato in grado di trovare un'eccezione nel log di traccia, che ha portato alla soluzione. –

+0

@nw. qual'era il problema? puoi condividerlo? – Siddhesh

+0

Passaggio 2) è facoltativo e richiede la dichiarazione della sezione di configurazione messageLogging. –

1

Come per la risoluzione dei problemi, a WCF trace può a volte aiutare a capire questi problemi.

Problemi correlati