2008-12-12 18 views
31

Używam ASP.net z .NET 3.5 na IIS7 (Vista) z modułem URL Rewrite firmy Microsoft.asp.net, moduł do ponownego wpisywania adresu URL i web.config

Oznacza to, że mam sekcję

<system.webServer> 
    <rewrite>...</rewrite> 
    ... 
</system.webServer> 

w pliku web.config, ale pojawia się ostrzeżenie, że w system.webServer element „przepisać” nie jest dozwolone.

W jaki sposób mogę skonfigurować mój system tak, aby zezwalał (a może nawet miał Intellisense) na przepisywanie części web.config?

Dziękuję Christoph

+3

Mogę potwierdzić, że ten problem nadal występuje w VS2010 i IIS7.5. –

+1

powoduje to awarię kompilacji mojego projektu mvc. dość źle. –

Odpowiedz

25

udało mi się uzyskać tej pracy w Visual Studio 2010.

Start z Ruslan poście here i pobrać plik 2,0 IntelliSense. Następnie postępuj zgodnie ze wskazówkami, które opublikował wcześniej: here. Wszystko skończyło się robi biegł następującą komendę jako Rusłan instruuje:

C:\download_directory\rewrite2_intellisense>cscript UpdateSchemaCache.js

Jak Christoph zauważa w swoim komentarzu, upewnij się zastąpić VS90COMNTOOLS z VS100COMNTOOLS w UpdateSchemaCache.js przed uruchomieniem powyższego polecenia, jeśli są przy użyciu Visual Studio 2010.

Nie trzeba ponownie uruchamiać programu Visual Studio. Dodałem sekcję <rewrite> tylko do odpowiednich plików transformacji Web.config, ponieważ posiadanie jej w głównym pliku Web.config powoduje przerwanie lokalnego debugowania.

+4

Cześć Jon, dzięki za link. Działa dobrze w vs2010, ale należy pamiętać, że jeśli używasz vs2010, musisz zmienić w UpdateSchemaCache.js "VS90COMNTOOLS" na "VS100COMNTOOLS" (wskazówka dla innych użytkowników :-)) – Christoph

+0

Cześć Jonathan. O tej transformacji web.config - jak wygląda twój? Jedyny sposób, w jaki mogę to zrobić, to dodać drugą sekcję system.webServer zawierającą i . Wolałbym nie dodawać drugiej sekcji . Czy masz bardziej elegancki sposób? – Eric

+0

@Jon FreeLand - pojawia się ten błąd (mimo że używam go jako polecenia administratora) Nie powiodło się otwarcie pliku Xml \ Schemas \ DotNetConfig.xsd. Upewnij się, że skrypt jest uruchamiany w wierszu polecenia z podwyższonym poziomem uprawnień. – chobo2

3

wierzę, trzeba mieć URL Rewrite Module „zainstalowany” w pliku web.config w systemie.

Musisz zainstalować moduł w aplikacji za pośrednictwem interfejsu IIS 7.0 lub zlecić firmie hostingowej.

+0

nope, zainstalowałem moduł Rewrite kilka razy na kilku Mashines (Vista i Win7) za pośrednictwem Instalatora Platformy Web 2.0 i natywnego Instalatora z IIS.net – Christoph

3

wierzę trzeba zdefiniować moduł w pliku web.config tak:

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

Aktualizacja: Intellisense można ustawić tutaj:

http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/

Update: Sprawdź grupa sekcji jest identyfikowana w% systemroot% \ system32 \ inetsrv \ config \ applicationHost.config:

<sectionGroup name="rewrite"> 
    <section name="rules" overrideModeDefault="Allow" /> 
    <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" /> 
    <section name="rewriteMaps" overrideModeDefault="Allow" /> 
</sectionGroup> 
+0

Witam, faktycznie mam to (do przepisywania 2,.0):

ale problem nadal istnieje ... – Christoph

Powiązane problemy