Domanda

Ho ricevuto un errore quando un assembly .NET Framework 2.0 di riferimento ha tentato di eseguire la seguente riga di codice in un servizio WCF ospitato da IIS:

Messaggio di errore:

  

exePath deve essere specificato in caso contrario   correndo dentro un exe indipendente.

Codice sorgente:

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

Qualcuno ha riscontrato questo problema e sa come risolverlo?

EDIT: La mia domanda è: qual è il modo migliore per aprire un file di configurazione (app.config e web.config) da un servizio WCF che è retrocompatibile con un assembly .NET 2.0?

È stato utile?

Soluzione 2

Sono stato in grado di risolvere il problema di configurazione rimuovendo il codice esistente dalla mia provata risposta e sostituendolo con la seguente implementazione di ConfigurationManager:

string MySetting = ConfigurationManager.AppSettings.Get("MyAppSetting");

Se funziona per applicazioni ASP.NET, applicazioni WinForms e servizi WCF. Ho appena ingegnerizzato l'implementazione iniziale della mia biblioteca di classe 3 anni fa ....

Altri suggerimenti

L'assembly .NET 2.0 di riferimento fa parte di una libreria di classi che ho sviluppato per la nostra libreria aziendale per gestire compiti comuni. È stato progettato per essere utilizzato nelle applicazioni ASP.NET e WinForm.

Ecco il codice sorgente che ho usato per determinare quale tipo di file di configurazione aprire:

//Open app.config or web.config file
if (HttpContext.Current != null)
    this.m_ConfigFile = WebConfigurationManager.OpenWebConfiguration("~");
else
    this.m_ConfigFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

Dipende da cosa stai cercando di realizzare. Su ASP.NET, normalmente non useresti ConfigurationManager per cose come questa, ma WebConfigurationManager invece. Detto questo, non esiste un equivalente preciso, dal momento che, in realtà, le cose utente / roaming / etc che OpenExeConfiguration consente non hanno senso su un'applicazione web.

A cosa ti serve?

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