2010-11-28 12 views
1

Nous travaillons sur une application Web qui crée davantage d'applications Web. Chaque application Web devra obtenir une règle de réécriture d'URL (URL REWRITE MODULE 2.0). Pour autant que je sache, il n'y a aucun moyen d'ajouter de telles règles sans modifier le fichier web.config (ai-je raison ??). Donc, mon plan était de travailler avec plusieurs fichiers partiels web.config. Un fichier .config principal, et beaucoup de fichiers .config par application (chaque fichier contiendra ses règles de réécriture de l'URL de l'application Web). Cette façon de faire semble un peu compliquée, mais je ne peux penser à rien d'autre, et les suggestions seront les bienvenues.Application ASP.NET 3.5 avec plusieurs fichiers web.config (IIS 7)

Alors est-il possible d'utiliser des fichiers web.config très multiples pour l'application racine?

Merci d'avance, Gal.

Répondre

0

Chaque application doit avoir une web.config complète et non partielle, exepté si vous allez avec un filet 4

L'astuce consiste à utiliser beaucoup la enlever commande sur l'autre à l'intérieur et web.config supprimer le paramètre des parents qui ne doit pas être utilisé pour cela. Par exemple, si sur la racine principale vous avez un module que vous n'avez pas gagné pour l'utiliser sur les autres arbres, utilisez la commande remove de tous les autres web.config pour le supprimer. Spécialement les modules qui sont sur un Bin et pas sur un autre bin de répertoire.

<httpModules> 
    <remove name="TheHttoModuleNotNeedHere" /> 
    <remove name="AnonymousIdentification" /> 

    ... add here your other modules for that directory... 
</httpModules> 

La commande remove fonctionne pour presque toutes les sessions sur config.

Vous pouvez le faire fonctionner, je l'ai fait, mais c'est beaucoup de travail pour trouver tous les conflits/configs inutiles et l'enlever.

Pour une autre session, il existe également la commande clear. Par exemple, sur le gestionnaire de rôles, vous pouvez effacer tout et ajouter du nouveau.

<roleManager enabled="true" ...> 
    <providers> 
    <clear /> 
    <add name="MyName" ... type="System.Web.Security.SqlRoleProvider" /> 
    </providers> 

Espérons que cette aide sera utile pour que cela fonctionne.

1

Ce tag suivant fera l'affaire. L'absence de cette balise était la raison principale de mon problème lorsque j'utilisais avec deux fichiers web.config pour mes deux applications différentes fonctionnant sur mon site web.

**<location path="." inheritInChildApplications="false">** 
    <system.web> 
    <!-- ... --> 
    </system.web> 
**</location>**