2009-08-26 5 views
0

Il s'agit peut-être d'une question d'erreur de serveur limite, mais c'est ici que ça se passe.Pourquoi web.config remplace MetaBase.xml?

J'ai un IIS 6 où AspMaxRequestEntityAllowed="204800" dans MetBase.xml, ce qui suggère la limite de fichier de téléchargement est 200kb, tandis que dans <httpRuntime maxRequestLength="20192"/> web.config permet un téléchargement de 20 Mo - et celui-ci est ce que l'application permet.

Pourquoi web.config remplace-t-il MetaBase.xml? Pour moi, cela semble être une erreur de la hiérarchie. Et où puis-je trouver un "paramètre centralisé" pour configurer les limites maximales pour l'ensemble de la machine sur laquelle le serveur est allumé, au cas où je ne voudrais pas que le web.config mishapp permette des gigaoctets de téléchargement?

Répondre

0

Le fichier Web.config est le gestionnaire de configuration du dernier point et les entrées qu'il contient remplacent toutes les entrées effectuées dans les couches supérieures.

I.e. tous les paramètres définis dans le fichier machine.config (qui s'appliquent à tous les sites Web) seront remplacés par web.config (applicable uniquement à ce site Web).

En fait, vous pouvez avoir un fichier web.config distinct pour chaque dossier qui remplacera votre web.config au niveau racine.

C'est ainsi que fonctionne la hiérarchie.

+0

"C'est ainsi que fonctionne la hiérarchie." Pas si vous voyez à partir du moment où la webapp est accessible via le serveur, et donc la configuration du serveur devrait dicter ce que les applications sous-jacentes sont autorisées à faire. Si j'étais un technicien serveur, ne voulant pas des téléchargements massifs sur un serveur spécifique, je serais cochée si n'importe quel développeur pouvait remplacer mes paramètres de serveur dans l'app-config. Mais peut-être que c'est juste moi. Comme je le vois, les paramètres du serveur remplacent les paramètres de l'application. Je suppose que j'ai tort. Mais je vois les avantages des deux scénarios. –

+0

Je marque ceci comme réponse correcte, mais je devrai regarder dans l'héritage de configuration de Microsoft. :) –

+0

Eh bien, lorsque vous êtes propriétaire d'un site Web, vous seriez coché si une partie de votre site Web ne fonctionne pas parce que les autorisations pertinentes n'ont pas été définies dans machine.config. Rappelez-vous également que ceci n'est valide que pour les paramètres modifiables logiquement, par exemple: le propriétaire du site ne peut pas modifier les autorisations de dossier pour les dossiers qu'il ne possède pas, uniquement ceux auxquels il a droit. –

0

Je ne suis pas au courant de MetaBase.xml mais dans votre machine il y a configs disponibles par défaut dans le dossier

c: \ Windows \ Microsoft.Net \ Cadres \ VERSION \ Config

regrette que le nom exact peut être un peu différent, mais vous comprendrez facilement, ici vous trouverez quelques fichiers web. *. config, dans chacun d'eux vous pouvez configurer et il y a un moyen que vous pouvez interdire cette propriété à modifier à un niveau inférieur, mais je ne suis pas conscient de la façon de le faire.

Lecture MS Documentation de httpRuntime dit que la limite maximale est de toute façon fixée à 4 Mo par ASP.NET lui-même. Je vais essayer de trouver comment bloquer le niveau inférieur pour modifier cet élément dans leur web.config.

+0

J'ai lu quelque part que la limite est de 4 Mo aussi - en fait, je l'ai expérimenté aussi. Mais dans la webapp je l'ai mentionné, il est apparemment surchargé, car les fichiers plus volumineux sont autorisés. Je n'ai pas écrit la webapp, donc je ne connais pas les détails. –

+0

Oui, mais il existe également des moyens d'empêcher les moindres points web.config de faire des changements qui peuvent être définis plus haut sur machine.config –