2009-04-06 12 views
14

Czy można użyć appcmd do zmiany wartości parametru allowDefinition? W szczególności próbuję włączyć zmiany w module httpCompression na poziomie aplikacji.Jak zmienić atrybut sekcji allowDefinition za pomocą appcmd w IIS 7?

Modyfikowanie ApplicationHost.config ręcznie zmienić następującą linię:

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

Do

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

pozwala mi wtedy wykonać następujące polecenia: appcmd

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

jednak I potrzebujemy rozwiązania, które nie polega na ręcznej edycji pliku applicationHost.confi g

+0

Czy masz sposób, aby ustawić overrideModeDefault Zezwalaj użyciu appcmd .exe? – Jonesome

Odpowiedz

0

Jeden duży ostrzeżenie, nigdy nie powinno się zmienić allowDefinition, że jest ważnym ustawieniem, które zwykle nie bez powodu, na przykład może się okazać, że nawet jeśli ustawisz go w określonym katalogu lub aplikację to będzie nie działa, więc programiści to sprecyzowali.

Proszę więc, nie wolno modyfikować atrybutu allowDefinition w definicjach sekcji. Z drugiej strony można zmodyfikować parametr overrideModeDefault, który pozwoli użytkownikom zdefiniować go w innym miejscu, o ile jest dozwolony z definicji.

+0

Czy masz odwołanie do tego? Nie widzę niebezpieczeństwa ... –

+1

Nie mam referencji, ale wierz mi, nie chcesz tego robić :). Jako przykład dodaliśmy sekcję modułów z allowDefinition do MachineToApp, jeśli zmienisz to, powiedzmy, Everywhere, to nadal nie będzie działać, ponieważ moduły POTRZEBUJĄ być na aplikację i nie mówią folderu (więc chociaż konfiguracja jest poprawna, zachowanie środowiska wykonawczego nie będzie praca). To samo dotyczy prawie wszystkich ustawień. Właśnie dlatego wymyśliliśmy wartość overrideModeDefault, aby można było ją zmienić, ale co ważniejsze, zaleca się użycie zamiast niej ścieżek lokalizacji i trybu OverrideMode. –

5

Mój problem polegał na tym, że musiałem zmienić anonimowe uwierzytelnienie z fałszywego na prawdziwe. Kiedy robiłam: appcmd ustawić config websitename/rozdział: anonymousAuthentication/włączone: True

Błąd mam: Config Błąd Konfiguracja ta nie może być używana na tej ścieżce. Dzieje się tak, gdy sekcja jest zablokowana na poziomie nadrzędnym. Blokowanie jest domyślnie (overrideModeDefault = "Deny") ...

Aby odblokować, wykonaj następujące czynności: appcmd unlock config/section :? Spowoduje to wyświetlenie żądanej sekcji. Następnie wpisz:

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

to wszystko ... :)

+1

to nie działa dla mnie z IIS7.5 lub IIS8.Mogę odblokować sekcję konfiguracji w porządku (nie daje mi komunikatu o błędzie), ale zastosowanie jakichkolwiek zmian na poziomie witryny kończy się niepowodzeniem z tym samym błędem, o którym mowa powyżej. – zcrar70

+1

dodanie '-commit: apphost' pomaga, jeśli nic innego nie działa – Alex

+0

Alex, dziękuję bardzo. To naprawdę pomaga. – Shad