IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Architecture et ressources partagées


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Architecture et ressources partagées
    Bonjour,

    J'ai un petit problème d'architecture pour un site web... Voilà, mon site web se compose de plusieurs "modules", qui sont en fait vu comme des sites totalement indépendant. J'aimerai mettre quelque part, dans un répertoire défini comme répertoire virtuel sur dans chacun des sites, des ressources (par exemple des fichiers CSS, JavaScript ou encore des master pages) afin qu'elles soient disponibles pour tous les "modules" de mon site. Plus précisément, voici comme se présente les choses au niveau IIS :

    /
    -- Ressources (répertoire virtuel)
    -- MODULE1 (Application)
    -- MODULE2 (Application)
    -- ...

    Les modules ont donc chacun un accès aux ressources partagées. Pour tout ce qui est fichiers CSS, JavaScript, je pense que ça fonctionne, par contre, avec les master pages, je me retrouve coincée avec un message d'erreur du genre :

    Erreur du serveur dans l'application '/MODULE1'.
    Le chemin d'accès virtuel '/Ressources/Default.master' correspond à une autre application, ce qui n'est pas autorisé.

    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.ArgumentException: Le chemin d'accès virtuel '/Ressources/Default.master' correspond à une autre application, ce qui n'est pas autorisé.
    Existe-t-il un moyen - peut-être au niveau du web.config ? - d'indiquer à mon site web que ce qui est dans le répertoire virtuel ça fait partie de son application ?

    Si par hasard quelqu'un voit une solution plus "propre" pour partager ce genre de ressources, je prends aussi

    Merci d'avance à ceux qui pourrait m'aider, j'espère que mon problème est clair, mais s'il manque des infos, n'hésitez pas à me demander !

  2. #2
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    Bonjour,

    Une solution serait que tes modules ou tes sites web fassent parti de la même web app et donc du même pool d'application. Du coup, tu n'aurait plus ce problème pour partager tes masterpages.

    Voici un exemple d'arborescence sur IIS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    - Application (WebApp)
        - Ressources (Repertoire virtuel)
        - Module 1 (Répertoire virtuel)
        - Module 2 (Répertoire virtuel)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse !
    Mais justement, le besoin que j'ai ici est de faire des applications distinctes... Bon, si vraiment ça ne fonctionne pas, je n'aurais pas le choix...

    J'ai essayé une autre solution, où j'ajoute le répertoire virtuel à la racine de chaque application :

    /
    -- MODULE1 (Application)
    -- -- Ressources (répertoire virtuel)
    -- MODULE2 (Application)
    -- -- Ressources (répertoire virtuel)
    -- ...

    Ça semble marcher, mais j'ai encore un soucis au niveau de Visual Studio : il ne prend pas en compte le répertoire virtuel quand il compile et du coup il n'accepte pas de compiler puisqu'il ne trouve pas la master page. Mais comment indiquer à Visual Studio qu'il doit tenir compte de mon répertoire virtuel ? (bon, de toutes façons, au niveau de l'architecture de notre système je suis pas sûre qu'on puisse le faire)

  4. #4
    Rédacteur
    Avatar de Paul Musso
    Profil pro
    Inscrit en
    Août 2008
    Messages
    368
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2008
    Messages : 368
    Par défaut
    En définissant la master page dynamiquement dans la fonction PreInit, cela devrait fonctionner, grâce à la propriété MasterPageFile de ta page courante. C'est pas top mais bon ...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Oué, pas top, parce que je voulais définir la master page par défaut dans le web.config pour que ce soit propre..

    Mais j'ai trouvé une solution pour que Visual Studio veuille bien reconnaître mon répertoire virtuel ! Il faut ouvrir le site non pas suivant un répertoire du filesystem, mais suivant les répertoires IIS ! (si quelqu'un veut que je détaille comment faire, y a pas de soucis ) Du coup, plus de soucis de compilation ! \o/

    Bon mais ça ne marche pas pour du code C# (genre des classes dans App_Code, ce ne sera pas partagé de cette manière).

Discussions similaires

  1. Réponses: 3
    Dernier message: 23/03/2008, 13h23
  2. Ressources partagées entre projets
    Par fterf dans le forum C#
    Réponses: 3
    Dernier message: 03/01/2008, 11h32
  3. Fenetres et ressources partagées
    Par buzzkaido dans le forum Windows
    Réponses: 20
    Dernier message: 06/06/2007, 08h38
  4. Réponses: 2
    Dernier message: 22/12/2006, 10h38
  5. [Réseau][ressource partagée]Autentification
    Par heid dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 12/11/2003, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo