Accueil   |   Forums   |  Offres d'emplois   |  Contact    |   Mon compte   
lundi 8 septembre 2008 Rechercher :
Déposez votre CV gratuitement sur touslesemplois
 
comparer les prix
» Logiciels
» Jeux vidéos
» Matériel Informatique


» ASP.NET
» ASP
» SQL
» PHP
» JAVASCRIPT
» XML
 


» ACTUALITÉ / DIVERS
» DROIT DE L'INTERNET
» INFOS VIRUS
» PATCHS MICROSOFT
» SÉCURITÉ
» BASES DE DONNÉES
» DOWNLOAD .NET
» LOGITHÈQUE
» SERVICES WEB
» Y SONT FOUS !
» .NET
» ASP
» ASP.NET
» JAVA
» PHP
» XML
» LANGAGE C#
» LANGAGE VB.NET
» UNIX / LINUX
» WINDOWS
» EVÈNEMENTS
» GASP
» MICROSOFT
 


Vous êtes ici : Forums > Langage ASP.NET > Probing, IIS Application ou GAC ?

Probing, IIS Application ou GAC ?
Bonjour à tous !

Je crois que j'ai trouvé un sujet qui va en faire réfléchir plus d'un ;-)
Je m'explique !
1. J'ai un site WEB configurer sous IIS qui pointe vers le dossier C:\SiteWeb.
2. J'ai créé deux projets :
-> le projet Inscription dans le dossier C:\SiteWeb\Inscription
-> le projet WUC C:\SiteWeb\WUC
3. Le projet Inscription utilise des *.ascx du projet WUC
3. Les dlls compilées sont placées dans C:\SiteWeb\bin car les dossiers des deux projets ne sont pas déclarés comme application sous IIS donc le bin commun est le bin du site.

Tout fonctionne très bien, je ne me plaint pas. Mais je souhaite en fait avoir un dossier bin par application et non pas un centralisé. J'avais trois solutions que je vais vous décrire (cela peut vous donner des idées, on ne sait jamais, moi je suis à bout. Limite je jette .NET :evil: ) :

[b]Solution 1 : faire du probing avec le Web.config[/b]
D'aprés le documentation .NET, si j'ajoute ces lignes dans le Web.config du dossier C:\SiteWeb\Inscription alors je peux spécifier le dossier où se trouve mes assembly (dll) :

[code]
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<probing privatePath="Inscription\bin"/>
</assemblyBinding>
</runtime>
</configuration>
[/code]

Je fais la même chose dans le Web.config de C:\SiteWeb\WUC. Mais cela ne marche pas et il me sort l'erreur [b]Could not load type 'Inscription'[/b] quand j'appelle un aspx du projet Inscription. Conclusion et question : est-ce que le probing ne marche que pour les exécutables et pas du tout pour les ASP.NET Application ?
Ce serait dommage car c'est la solution que je préférais.


[b]Solution 2 : Inscription et WUC deviennent des applications dans IIS[/b]
Dans ce cas le bin par défaut des *.aspx de Inscription et *.ascx de WUC est [b]leur propre[/b] répertoire bin. On se dit gagné ! mais non car au premier appel j'ai droit à l'erreur : [i]The virtual path '../wuc/WUC_MenuHAUT.ascx' maps to another application, which is not allowed[/i]
Je fais : le con ! à quoi çà sert de faire des WUC alors ? Je persiste et je cherche des moyens de contournement. solution : créé un virtual directory dans Inscription, que je nomme WUC et qui pointe vers C:\SiteWeb\WUC. Je change mes chemins qui mènent aux *.ascx en 'wuc/WUC_MenuHAUT.ascx'd ans les *.aspx de Inscription. Je recharge ma page et je tombe sur :
[code]
[i]Could not load type 'WUC.menuHaut'[/i]
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="WUC_MenuHaut.ascx.cs" Inherits="WUC.menuHaut" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
[/code]
Conclusion : le cross Application de même niveau est interdit mais d'une arborescence mère vers fille est autorisé. Il localise les dll de Inscription mais pas celle de WUC

[b]Solution 3 : Je met tout dans la GAC[/b]
Facile à déployer, plusieurs versions d'une dll au même endroit... Tout est beau mais il y a tout de même un problème. Si je met un dll X.dll en version 1.0.0.0 dans la GAC, que je lance mon appli ASP.NET, IIS récupère X.dll, compile une première fois et la page s'affiche. Si je change la X.dll car il y a un bug mais que je laisse le numéro de version 1.0.0.0 alors IIS ne va pas chercher la dernière dll et utilise celle qu'il a déjà utilisé. Donc apparement il se base uniquement sur le numéro de version pour faire la différence. Seule solution : redémarrer IIS mais si on a mis en place une politique de cache alors on perds tout et le temps que tout le cache se recalcule le serveur est tombé sous la charge !

Pourquoi je vais faire tout çà vous allez dire ? Car il arrive que WUC se base sur un dll X.dll de version 1.0.0.1 et Inscription sur x.dll de version 1.1.0.0. Il faut donc que je puis stocker ces dll (différentes fonctionnelement mais identiques physiquement par le nom de fichier) dans un répertoire bin différent et par voie de conséquence dans le bin de chacun des projets.

Ma question est donc simple (aprés ces explications longues :-)) : avez-vous des solutions pour terminer la démarche d'une des ces trois solutions ou avez-vous une autre solution ? Cela fait 4 jours que je suis là dessus et je sature alors la moindre info pourrait me décoincer.

Merci d'avance,
Laurent

Message posté le 18/02/2004 par Lolozere

Répondre à ce message
 


ASP Serveur - L'hébergement ASP.NET


A RETENIR CETTE SEMAINE
08/09/2008 - ToolTips WPF et RoutedCommandEx
Les tooltips WPF sont bien entendus plus évolués. Cet article montre comment afficher des tooltips s ...
08/09/2008 - Génération de documentation avec Sandcastle Help File Builder
Dans ce tutoriel, nous allons voir comment générer simplement une documentation pour notre code, en ...
08/09/2008 - ASP.net - tout savoir sur la validation des entrées utilisateurs | les controles de validation
Trop souvent, les entrées utilisateurs ne sont pas vérifiées. Dans le meilleur des cas, le thread ex ...
08/09/2008 - Microsoft délivre les sources de MEF sur CodePlex
MEF (Managed Extensibility Framework) est un framework permettant de construire des applications réu ...
08/09/2008 - Zend Framework 1.6 : une combinaison Ajax/PHP
Dans sa nouvelle version, l'infrastructure PHP s'intègre à Dojo. Une boîte à outils pour créer des i ...
08/09/2008 - Gestion d'un formulaire OpenXML avec Windows Workflow Foundation
Cet article a pour but de montrer une utilisation conjointe du format Open XML et de Windows Workflo ...
16/07/2008 - Windows Server 2008 : Network Access Protection
Le nouveau système d’exploitation serveur de Microsoft, Windows Server 2008, apporte avec lui de nou ...
(c) 1999-2006 ASP MAGAZINE SARL
Partenaires : Codes sources c2i ASP-PHP
Hébergement serveurs dédiés Windows


Hit-Parade