2009-04-06 9 views
14

È possibile utilizzare appcmd per modificare il valore di allowDefinition? Nello specifico cerco di abilitare le modifiche al modulo httpCompression a livello di applicazione.Come si modifica l'attributo della sezione allowDefinition utilizzando appcmd in IIS 7?

Modifica del applicationHost.config modificando manualmente la seguente riga:

<section name="httpCompression" allowDefinition="AppHostOnly" overrideModeDefault="Deny" /> 

Per

<section name="httpCompression" allowDefinition="MachineToApplication" overrideModeDefault="Allow" /> 

mi permette poi eseguire i seguenti comandi: appcmd

appcmd set config "website name" /section:httpCompression /noCompressionForProxies:false 
appcmd set config "website name" /section:httpCompression /noCompressionForHttp10:false 

Comunque io serve una soluzione che non si basi sulla modifica manuale di applicationHost.confi g

+0

Avete un modo per impostare overrideModeDefault per consentire l'utilizzo appcmd .exe? – Jonesome

risposta

0

Un grande avvertimento, MAI si dovrebbe cambiare l'allowDefinition, che è un ambiente importante che di solito è lì per un motivo, ad esempio, potrebbe essere che, anche se si imposta in una directory specifica o app sarà non funziona, quindi gli sviluppatori lo hanno specificato.

Quindi, per favore, non modificare mai l'attributo allowDefinition nelle definizioni di sezione. D'altra parte è possibile modificare overrideModeDefault che consentirà agli utenti di definirlo in una posizione diversa se consentito per definizione.

+0

Avete un riferimento per questo? Non riesco a vedere il pericolo ... –

+1

Non ho un riferimento, ma fidati di me non vuoi farlo :). Ad esempio, abbiamo aggiunto la sezione modules con allowDefinition a MachineToApp, se si modifica tale da dire Ovunque, non funzionerà ancora poiché i moduli DEVONO essere per App e non dire folder (quindi sebbene la configurazione sia valida, il comportamento di runtime non sarà lavoro). Lo stesso vale per quasi tutte le impostazioni. Questo è il motivo per cui abbiamo inventato il valore overrideModeDefault in modo che possa essere modificato, ma, soprattutto, il modo consigliato è utilizzare invece i percorsi di posizione e la modalità override. –

5

Il mio problema era che dovevo cambiare anonymousAuthentication da False a True. Quando ho fatto: appcmd set config WebSiteName/section: anonymousAuthentication/enabled: true

errore ho ottenuto: Config Errore Questa configurazione non può essere utilizzato in questo percorso. Questo succede quando la sezione è bloccata a livello genitore. Il blocco è per impostazione predefinita (overrideModeDefault = "Nega") ...

Per sbloccare, effettuare le seguenti operazioni: appcmd unlock config/section :? Questo elencherà la sezione desiderata. Quindi digitare:

appcmd unlock config /section:system.webserver/security/authentication/anonymousauthentication

Ecco fatto ... :)

+1

questo non ha funzionato per me con IIS7.5 o IIS8.Posso sbloccare la sezione di configurazione bene (non mi dà un messaggio di errore), ma l'applicazione di eventuali modifiche a livello di sito quindi fallire con lo stesso errore di cui sopra. – zcrar70

+1

aggiungendo '-commit: apphost' aiuta se nient'altro funziona – Alex

+0

Alex, grazie mille. Questo aiuta davvero. – Shad

Problemi correlati