Domanda

Mi scuso se questo è già stato risposto su questo sito, ho cercato ma non ho trovato questo scenario esatto.

io sono l'aggiunta log4net a un servizio WCF. Ho aggiunto un gestore in caso Application_Error, e sta recuperando un file non trovato errore su ogni richiesta.

Ho visto questo con i siti web, e di solito l'errore può essere fatta risalire fino a non avere un file "favicon" nella directory principale, o ad un'immagine mancante assegnato un foglio di stile css.

Tuttavia, questo è un servizio WCF, non v'è alcun foglio di stile CSS, e l'aggiunta di una favicon alla radice non ha risolto il problema.

Qualcun altro ha un buon modo per risolvere questo?

Alcuni indizi:

  • Non ho schierato questa ancora al server IIS vero, sto correndo in locale.
  • L'errore non accade quando sto facendo funzionare in DEBUG all'interno di Visual Studio, solo quando ho accedere al servizio da un browser web (Internet Explorer o Chrome)
  • ho aggiunto il sentiero URL e file al messaggio di errore, e questo è quello che sono:

    URL: http: // localhost: 3994 /

    FilePath: /

    Errore: System.Web.HttpException (0x80004005):. Il file non esiste

Edit: i valori di cui sopra sono ciò che compare nella eccezione ingresso:

protected void Application_Error(object sender, EventArgs e)
{
    var objErr = Server.GetLastError().GetBaseException();
    if (objErr is System.Web.HttpException)
    {
        var filePath = Context.Request.FilePath;
        var url = ((HttpApplication) sender).Context.Request.Url;
        Log.Error("URL: " + url + "; FilePath: " + filePath, objErr);
    } else
        Log.Error("Application Error", objErr);
}

Qualsiasi aiuto sarebbe molto apprezzato.

È stato utile?

Soluzione

Il motivo è probabile che il servizio non è stato specificato. Quando un server web (il locale dev uno pure) riceve una richiesta per una cartella si guardano all'interno della cartella per la pagina di default (di solito chiamato: index.htm, index.html, default.asp, default.aspx, ecc) e presentare che (a meno che non si sta utilizzando una descrizione servizio REST based). Quando si esegue da VS debug vi porterà direttamente al servizio effettivo.

In questo caso perché hai costruito un servizio è necessario specificare la posizione del servizio esatto cioè http://localhost:3994/service.svc.

Inoltre:. Se si avvia una sessione di debug e quindi modificare l'URL per http://localhost:3994/ si dovrebbe essere in grado di controllare questo è il caso con il debugger

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top