2013-08-15 15 views
7

quando eseguo il debug del mio sito Web localmente utilizzando Visual Studio, la modifica a web.config passa all'effetto senza alcun problema.La modifica a web.config sul server non ha effetto

Tuttavia, quando eseguo la stessa modifica a web.config sul mio server host (con IIS 7.5 in esecuzione) sembra che il sito stia ancora utilizzando la vecchia versione di web.config quando lo carico nel mio browser . Le nuove modifiche non sono applicate.

Ho tentato di arrestare e avviare il pool di applicazioni del mio sito sul server utilizzando Gestione IIS, ma ancora nessuna modifica. Ho anche provato a fermare e avviare IIS, che non funziona neanche.

La modifica che sto apportando al mio web.config comporta la rimozione di voci nel blocco per consentire e negare agli utenti. Attualmente è impostato per richiedere le credenziali e, se valido, il sito è accessibile. In caso contrario, l'accesso è negato. La modifica che sto tentando di fare è consentire l'accesso a tutti gli utenti e non chiedere loro le credenziali.

PRIMA:

<authorization> 
    <deny users="?" /> 
    <allow roles="admins" /> 
    <deny users="*" /> 
</authorization> 

DOPO:

<authorization> 
    <allow users="*" /> 
</authorization> 

Qual è la ragione di questo?

+0

Sei sicuro di voler modificare il corretto 'web.config'? Se ne hai più, verifica di cambiare quello corretto. –

+0

Ho solo un web.config sul mio sito. – Krondorian

risposta

0

Si sta distribuendo, pubblicando o copiando? Assicurati che le tue impostazioni di debug e release siano le stesse. Esistono anche casi in cui la directory virtuale non è configurata correttamente e il webconifg corretto non viene caricato.

+0

Di solito, ogni volta che apporto una modifica, mi coinvolge semplicemente spostando una DLL aggiornata dalla mia macchina locale per sostituire quella vecchia sul server. Ma dal momento che non esiste una DLL per web.config, sto solo cercando di apportare la modifica alla copia del file del server. – Krondorian

+0

Vai a IIS seetings della tua applicazione. Controlla l'opzione Impostazioni, recupera la stringa di connessione e le impostazioni di configurazione dal file web.config. Vedete voci vecchie o nuove? Ho anche visto che succede quando c'è un errore relativo a XML in web.config. Tag non chiuso o simile. – KonB

0

Ho scoperto che se provo a modificare Web.config direttamente tramite il file system (su un server IIS), le mie modifiche non vengono salvate e, quindi, non vengono applicate. Questo è ciò che ho trovato funziona per me, purché si abbia accesso a IIS sul server host:

NOTA: Queste istruzioni si basano su IIS 8 su Windows Server 2012, ma potrebbero comunque funzionare per IIS 7.5.

  1. Vai alla Gestione IIS sul server host
  2. drill-down nei siti fino a trovare la vostra applicazione
  3. Usando vedere le funzionalità, fare doppio clic le regole di autorizzazione
  4. Utilizzare i Aggiungi consenso Regola ... e Aggiungi regola di negazione ... collegamento nel pannello Azioni (sulla destra) per configurare tutte le regole di autorizzazione.

Questo processo aggiorna Web.config automaticamente. Se è necessario modificare o eliminare una regola, fare clic sulla regola applicabile, quindi fare clic su Modifica ... o Rimuovere il collegamento nel pannello Azioni.

Spero che questo aiuti.

2

È necessario ripristinare IIS. Basta aprire il prompt dei comandi ed eseguire IISRESET e dovresti essere bravo.

0

Copia il Web.config file dal tuo server e metterlo nella tua macchina locale e modificare in base alle proprie esigenze. Quindi eliminare il file web.config nel server e copiare e incollare il web.config modificato dalla macchina locale al server.

Questo lavoro per me, ma per me il problema era il problema.

Problemi correlati