Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Qu'est ce que le Web.Config?
auteur : Didier Danse
Ce fichier permet de définir pour une application asp.NET ou pour un répertoire particulier de celle-ci. Il comprend divers paramètres comme le type de compilation, le type d'authentification, la manière de garder la valeur des variables de sessions, ... Il est également possible d'y placer des valeurs qui sont ainsi modifiables sans recompilation de l'application. Un Web.config bien configuré permet, tout comme le Global.asax, de simplifier la mise en oeuvre de l'application ainsi que d'améliorer les performances.


Où doit se trouver le Web.Config?
auteur : Didier Danse
Il est possible de placer un fichier Web.Config par répertoire. La portée du Web.Config est ainsi ce répertoire et tous ses sous-répertoires sauf si un autre fichier Web.Config se trouve dans un de ses sous-répertoires. Dans ce cas, le Web.Config correspondant sera pris en compte.


Comment changer le timeout d'une application web ?
auteur : cyrillus76
Pour changer le timeout d'une application web, dans le fichier web.config :

<configuration> 
    <system.web> 
        <customErrors mode="Off"/> 
       <compilation debug="true"/> 
      <httpRuntime maxRequestLength="8096"   executionTimeout="600"/> 
    </system.web> 

</configuration>
Si vous voulez modifier le timeout d'une seule page, au début de la page aspx :

<% 
Server.ScriptTimeout=200 
%>

Pourquoi l'upload de fichiers de plus de 4Mo lève une exception ?
auteur : David Pedehourcq
Dans votre fichier web.config, par défaut vous avez :

<configuration> 
   <system.web> 
       <httpRuntime maxRequestLength="4096" /> 
    </system.web> 
</configuration>
Il faut changer la valeur de httpRuntime maxRequestLength suivant vos besoins.

lien : fr Comment uploader un fichier sur le serveur via une page asp.net ?

Comment autoriser l'affichage des exceptions dans une application web?
auteur : Didier Danse
La réponse se trouve dans le Web.Config au sein du tag customErrors. Ce tag a diverses propriétés dont, entre autres, le Mode. Celui-ci peut valoir - On: les erreurs personnalisées sont activées. Si la valeur de la propriété defaultRedirect n'est pas redéfinie, les utilisateurs reçoivent une erreur générique - Off: les erreurs détaillées sont affichées - RemoteOnly: spécifie que les erreurs personnalisées ne sont affichées qu'aux utilisateurs distants. Les erreurs asp.NET sont affichées sur le localhost. Il s'agit de la valeur par défaut.


Est-il possible de télécharger ou de voir le Web.Config à partir d'Internet? Et le Global.asax?
auteur : Didier Danse
Ces deux fichiers sont les seuls qui ne sont pas compilés dans une application web. On serait ainsi tentés de télécharger les fichiers pour essayer un quelconque piratage. Alors est-ce possible? La réponse est non. Ils sont automatiquement configurés pour éviter ce genre de choses.

lien : fr Utilisation du Global.asax

Est-il obligatoire d'avoir un fichier Web.config pour l'application?
auteur : Didier Danse
Non. D'ailleurs dans VS.NET 2005 il n'y est pas d'office. Dans ce cas, le fichier de config pris en compte est le machine.config.


Comment obliger le serveur à envoyer des pages identiques quelque soit le navigateur client?
auteur : Didier Danse
Par défaut, lorsque le navigateur est Internet Explorer, IIS envoie des tags formattés différemment que lorsqu'il s'agit de Firefox ou tout autre navigateur. (les largeurs de composants ne sont pas toujours envoyées à un client Firefox)

Pour éviter cela, il est possible de préciser dans le web.config d'envoyer des tags identiques quelque soit le navigateur. Il faut donc ajouter un fils au noeud "system.web".

<browserCaps>TagWriter=System.Web.UI.HtmlTextWriter</browserCaps>

Mes variables de session sont perdues lorsque je change de page, pourquoi?
auteur : Didier Danse
Tout d'abord pour être certain que la session est bien "réinitialisée", mettez un point d'arrêt pour vérifier que l'on passe bien dans le session_start. Vous pouvez également utiliser un Trace.Warning ou simplement un Console.Write afin de laisser un affichage quelque part signalant qu'on est bel et bien passé par le session_start.

Si c'est le cas, il s'agit certainement d'un firewall (zonealarm par exemple) qui empêche l'enregistrement des cookies nécessaires pour garder le sessionid.

Lors d'un retour serveur, le sessionid n'est pas passé et le serveur considère donc qu'il s'agit d'une nouvelle session.

Pour corriger le problème, vous pouvez utiliser un autre moyen de stocker les sessions ou affecter la valeur "true" à la propriété cookieless dans le web.config

    <sessionState 
            mode="InProc"
            stateConnectionString="tcpip=127.0.0.1:42424"
            sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"
            cookieless="true" 
            timeout="30" 
    />

Comment autoriser l'accès à une page sans authentification alors qu'on utilise les Forms authentification?
auteur : Didier Danse
Si l'on définit le mode d'authentification à Forms, il faut, par défaut, être authentifié pour accéder à n'importe quelle page (excepté celle de login bien évidemment).

Pour permettre à un utilisateur non authentifié d'accéder à une page, il faut définir une règle dans le web.config.


<location path="test.aspx">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
qui signifie que pour la page "test.aspx", on utilise tous les utilisateurs non authentifiés.


Comment rediriger les erreurs de mon application vers une page personnalisée ?
auteur : David Pedehourcq
Dans le fichier web.config de votre application :

<configuration> 
   <system.web> 
      <customErrors defaultRedirect="erreurinconnue.htm" mode="RemoteOnly"> 
         <error statusCode="500" redirect="500.htm"/> 
         <error statusCode="404" redirect="404.htm"/> 
      </customErrors> 
   </system.web> 

</configuration> 

Comment stocker des variables globales comme la chaine de connection dans le fichier web.config ?
auteur : David Pedehourcq
Dans une application on a toujours besoins de sauvegarder des variables globales qui pourront être réutilisées à tout moment par l'application. Le stockage des variables globales dans le fichier web.config est la solution la plus simple . Prenons l'exemple du stockage d'une chaine de connection dans le fichier web.config. dans le fichier web.config

<appSettings>
<add key="ConnectionString" 
 value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Inetpub\wwwroot\bornes\charentes.mdb;" />
</appSettings>
pour récupérer la chaine de connection :

Protected WithEvents connection As System.Data.OleDb.OleDbConnection
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    connection = New System.Data.OleDb.OleDbConnection()
    connection.ConnectionString = configuration.AppSettings("ConnectionString")
End Sub
Note : Il existe d'autres moyens pour stocker des variables globales. Par exemple les sessions utilisateurs pour jouer sur des variables qui dépendent des utilisateurs et leur paramètrer une durée de vie. Pour les chainnes de connections, si vous avez un mot de passe et un ID dans la chainne, il est conseillé de stocker cette variable dans la base de registre pour des raisons de sécurité (il est plus facile pour un hacker du lire un fichier sur le serveur, qu'une valeur dans la base de registre du serveur). Le stockage de variables globales "sensibles" dans la base de registre n'est possible qu'avec le framework.NET 1.1

lien : fr Quelles nouveautés dans ASP.NET 1.1

Où et comment définir la ConnectionString?
auteur : Didier Danse
Il existe plusieurs réponses possibles à cette question:
1° dans le code, à chaque fois que l'on crèe un objet XXXConnection
2° dans le code, dans une variable statique dans chaque page
3° dans le code, dans une variable statique et publique dans une des pages
4° dans le Global.asax
5° dans le Web.Config
6° un mix des deux dernières solutions

De 1 à 3, ce sont des solutions à proscrire car toutes modifications sur la base (changement de serveur, changement du mot de passe ou du login ou encore du type de sécurité mise en place) nécessite une recompilation de toute l'application.

Pour le point 4, la solution est très interressante car il est possible de définir une variable statique comme ci dessous:


Public Shared ConnectionString As String = "la chaine de connexion"
L'appel dans le code se fait alors par:

Dim cs As String = Global.ConnectionString
Cependant toute modification du fichier nécessite un redémarrage de l'application (effectué implicitement).

Le point 5, avec l'utilisation des attributs <appSetting> est très interressant puisqu'il est possible de modifier la valeur à chaud, sans redémarrage de l'application.

Pour lire la valeur:

System.Configuration.ConfigurationManager.AppSettings("clé")
A chaque appel, il y a un accès au fichier Web.Config. + !! probleme de string !!

En utilisant les avantages de l'un et de l'autre, on arrive à la situation suivante: On ne lit qu'une fois le Web.Config et on garde la valeur en mémoire, à l'aide d'une variable au sein de la classe Global.


Comment utiliser une chaîne de connexion définie dans le Web.Config ?
auteur : Didier Danse
Le framework fournit des méthodes pour y accéder. Utilisez simplement :

 
Dim constr as String 
constr = ConfigurationManager.ConnectionStrings("ConStr").ConnectionString
		
		

Comment rendre une page publique quand j'utilise le mode authentification form ?
auteur : valicare
Si vous utilisez la méthode :
<authentication mode="Forms">
Dans votre site et que vous souhaitez rendre certainnes pages accessibles à tout le monde sans authentification, rajoutez dans le web.config, aprés le </system.web> :

<location path="test.aspx"> 
    <system.web> 
      <authorization> 
        <allow users="?" /> 
      </authorization> 
    </system.web> 

</location>

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2007  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com