2010-06-29 5 views
5

Ho distribuito alcuni servizi WCF a un server tramite un progetto di installazione Web sono ospitati in un'applicazione IIS, che sembra essere in esecuzione bene.Registrazione WCF non funzionante, tentativo di ottenere QUALSIASI informazione sul motivo per cui i servizi non funzionano

Tuttavia, quando provo a navigare verso wsdl, non viene trovato nulla.

Sto tentando di impostare la registrazione diagnostica, per ottenere alcune informazioni.

Ho seguito il consiglio da qui: wcf trying to set up tracing to debug, not writing to log file

Inoltre, ho provato quello che si trova nella documentazione MSDN si fa riferimento qui: http://msdn.microsoft.com/en-us/library/aa702726.aspx alla voce "impostazioni consigliate per la distribuzione o Debugging" .. la mia web.config ha quel identici configurazione. Ma nessun file di registro è stato creato.

Niente di utile nel visualizzatore di eventi.

Qualche idea? Grazie !!

risposta

3

Potrebbe essere un problema di autorizzazioni; IIRC quelli non sempre si presentano nel registro eventi. Assicurarsi che l'utente IIS eseguito disponga di autorizzazioni di scrittura per il percorso del file di registro.

+0

grazie per l'idea.Ho temporaneamente dato il controllo completo di 'Everyone' su c: \ logs, ma non è stato ancora scritto nulla. –

+0

Hmm ... i registri IIS indicano che la richiesta viene gestita? Qual è il codice di risposta HTTP? – Randolpho

+0

è interessante, non compare nulla nei registri di IIS quando provo ad accedervi. –

2

Questa è in genere la configurazione diagnostica che uso. Sembra funzionare per me.

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    ... 
    <system.diagnostics> 
    <trace autoflush="true" /> 
    <sources> 
     <source name="System.ServiceModel" 
       switchValue="Verbose"> 
     <listeners> 
      <add name="sdt" 
       type="System.Diagnostics.XmlWriterTraceListener" 
       initializeData="D:\wcfLog.svcLog" /> 
     </listeners> 
     </source> 
    </sources> 
    </system.diagnostics> 
</configuration> 

Se non si ottiene alcun risultato potrebbe essere perché il servizio non si avvia correttamente. Il ServiceHost deve essere pronto per la diagnostica per produrre qualcosa. Con IIS anche se il tuo sito è in esecuzione, ciò non significa che ServiceHost sia stato avviato correttamente. Di solito è un problema di configurazione. Non sono un web man ma IIS non scrive su EventViewer se c'è un'eccezione non gestita nel sito web?

Inoltre, è possibile provare a creare un ServiceHostFactory personalizzato. In questo modo il tuo codice controlla la creazione di ServiceHost ed è possibile intercettare eventuali eccezioni e registrarle autonomamente.

Creazione di un ServiceHost personalizzato in IIS ->LINK

1

Questa è una vecchia questione, ma a beneficio di chiunque possa inciampare sul tema:

  1. Assicurarsi di aver configurato sia il sistema .diagnostics e le sezioni System.serviceModel/diagnostica configurate.
  2. Assicurarsi di averli configurati nel file App.config/Web.config corretto. La cosa da notare è che i file di configurazione multipli possono esistere in un progetto e quello utilizzato dipende dalla Configurazione build.

Personalmente ho avuto lo stesso sintomo fino a quando ho notato che ho messo le sezioni sotto app.config (nel mio caso, lato client tracing), invece di app.DebugLocal.config. La versione successiva è stata utilizzata poiché la configurazione della build è stata impostata su DebugLocal.

Problemi correlati