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

FAQ ASP.NET/C#

FAQ ASP.NET/C#Consultez toutes les FAQ

Nombre d'auteurs : 39, nombre de questions : 371, dernière mise à jour : 15 juin 2021 

 
OuvrirSommaireWebFormsWeb.Config

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.

Créé le 23 mai 2005  par 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.

Créé le 23 mai 2005  par Didier Danse

Pour changer le timeout d'une application web, dans le fichier web.config :

 
Sélectionnez
<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 :

 
Sélectionnez
<% 
Server.ScriptTimeout=200;
%>
Créé le 7 novembre 2003  par cyrillus76

Dans votre fichier web.config, par défaut vous avez :

 
Sélectionnez
<configuration> 
	<system.web> 
		<httpRuntime maxRequestLength="4096" /> 
	</system.web> 
</configuration>

Si ceci ne s'y trouve pas, la valeur 4096 est prise par défaut.

Il faut changer la valeur de httpRuntime maxRequestLength suivant vos besoins.

Mis à jour le 23 mai 2005  par David Pedehourcq

Lien : Comment uploader un fichier sur le serveur via une page ASP.NET ?

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.

Créé le 23 mai 2005  par 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.

Créé le 23 mai 2005  par Didier Danse

Lien : Utilisation du Global.asax

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.

Créé le 3 octobre 2005  par 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".

 
Sélectionnez
<browserCaps>TagWriter=System.Web.UI.HtmlTextWriter</browserCaps>
Créé le 3 octobre 2005  par Didier Danse

Dans le fichier web.config de votre application :

 
Sélectionnez
<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>
Créé le 17 décembre 2003  par David Pedehourcq

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:

 
Sélectionnez
static public string ConnectionString = "la chaine de connexion";

L'appel dans le code se fait alors par:

 
Sélectionnez
string cs = 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:

 
Sélectionnez
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.

Créé le 23 mai 2005  par Didier Danse

Pour accomplir cette tâche, il faut suivre les étapes suivantes :

  • Ajouter une référence à System.Configuration
  • Ajouter un nouveau fichier de configuration d'application et le nommer [Votre projet].dll.config
  • Changer la propriété "BuildAction" du fichier de config en "Content"
  • Changer la propriété "Copy to Output" en "Copy Always"

Après ces étapes, vous pouvez accéder au fichier de configuration de cette façon :

 
Sélectionnez
//Open the configuration file using the dll location
Configuration myDllConfig = 
       ConfigurationManager.OpenExeConfiguration(this.GetType().Assembly.Location);
// Get the appSettings section
AppSettingsSection myDllConfigAppSettings = 
       (AppSettingsSection)myDllConfig.GetSection("appSettings");
// return the desired field 
return myDllConfigAppSettings.Settings["MyAppSettingsKey"].Value;

Votre fichier de configuration devrait ressembler à ceci :

 
Sélectionnez
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key ="MyAppSettingsKey" value="MyValue"/>
  </appSettings>
</configuration>
Créé le 29 juin 2013  par Kropernic

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2007 Dotnet Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.