2011-10-02 8 views

Odpowiedz

12

kasuje on wszystkie odziedziczone klucze, to wszystko.

Oto artykuł MSDN: http://msdn.microsoft.com/en-us/library/aa903345(v=vs.71).aspx

+0

Kiedy otrzymam odziedziczone klucze? –

+2

Gdy jesteś w folderze innym niż root. Wszystkie klucze w folderze nadrzędnym będą dziedziczone. –

+2

Może również dziedziczyć z pliku machine.config. –

8

Usuwa wszystkie odwołania do odziedziczonych ciągi połączeń, umożliwiając jedynie ciągi połączeń, które są dodawane przez obecnego Element Dodaj.

W Brifly:

Każdy ASP.NET Web Application posiada własny plik konfiguracyjny o nazwie pliku web.config. W rzeczywistości każdy katalog w aplikacji ASP.NET może mieć jeden. Ustawienia w każdym pliku web.config mają zastosowanie do stron w katalogu, w którym są umieszczone, oraz do wszystkich podkatalogów tego katalogu.

Nazywa się to dziedziczeniem konfiguracji.

Więc jeśli utworzysz aplikację ASP.NET i ustawisz jej plik web.config, dodaj niestandardowe HttpHandlers, moduł UrlRewriting itd. I spróbuj utworzyć inną aplikację sieci Web ASP.NET w podfolderze, możesz mieć problemy, ponieważ aplikacja w podfolderze odziedziczy wszystkie ustawienia z nadrzędnego pliku web.config.

Więc jeśli na przykład konfiguracji modułu UrlRewriter w katalogu głównym aplikacji internetowych takich jak to:

<httpModules> 

    <add name="UrlRewriteModule" type="UrlRewritingNet.Web.UrlRewriteModule, UrlRewritingNet.UrlRewriter"/> 

    <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 

    </httpModules> 

A w aplikacji internetowej dziecięcej (w podfolderze) nie używasz UrlRewriteModule, a następnie, jeśli starają się uruchomić podrzędna aplikacja internetowa w przeglądarce, otrzymasz komunikat o błędzie: Błąd konfiguracji Opis: Wystąpił błąd podczas przetwarzania pliku konfiguracyjnego wymaganego do obsługi tego żądania. Sprawdź szczegółowe informacje o błędach poniżej i odpowiednio zmodyfikuj plik konfiguracyjny.

Komunikat o błędzie analizatora składni: Nie można załadować pliku lub zespołu "UrlRewritingNet.UrlRewriter" lub jednej z jego zależności. System nie może odnaleźć określonego pliku. (D: \ Projects \ VS \ AspDotNetFaqProject \ WWW \ web.config linia 89)

Błąd Źródło:

Linia 88: Linia 89 : Linia 90: Linia 91 :

Co się dzieje tutaj, ponieważ UrlRewriteModule jest skonfigurowany w pliku web.config folderu macierzystego, to ustawienie jest dziedziczone przez plik web.config aplikacji podrzędnej, a z tego powodu ASP.NET szuka pliku UrlRewriteModule DLL w katalogu BIN i wyłącza Oczywiście jej tam nie ma.

Na szczęście istnieje proste rozwiązanie tego problemu.

Pierwszą rzeczą, którą możesz zrobić, to usunąć problematyczny moduł HttpModule w sieci aplikacji podrzędnych.Plik konfiguracyjny za pomocą polecenia remove:

<httpModules> 

    <remove name="UrlRewriteModule" /> 

    </httpModules> 

Po usunięciu programu obsługi aplikacja działałaby poprawnie. Albo można użyć polecenia tak:

<httpModules> 

    <clear/> 

    </httpModules> 

Byłoby to usunąć wszystkie httpModules w aplikacji dziecięcej.