2008-10-08 8 views
4

Je vois cette erreur plusieurs fois par heure sur mon site de production et je ne suis pas sûr de savoir comment la réparer. J'ai grepped le code source et je n'utilise pas "../" n'importe où dans mon code pour générer un chemin.Aide avec l'erreur ASP.Net: "Impossible d'utiliser un .. pour quitter au-dessus du répertoire supérieur"

Mon application s'exécute sur IIS6 sur le serveur Win2003. Il utilise URLRewriter.Net pour permettre au site d'avoir des URL conviviales, et je me demande si cela pourrait contribuer au problème.

J'ai déjà googlé pour une solution et j'ai trouvé plusieurs possibilités, mais aucune n'a fonctionné pour moi.

J'ai essayé de créer un nouveau fichier App_Browser pour forcer les paramètres du tagwriter à utiliser un HtmlTextWriter spécifique, comme suggéré dans l'une des solutions les plus populaires, mais cela n'a pas fonctionné pour moi. Je n'ai pas vu d'autres solutions probables.

Merci d'avance pour votre aide.

Répondre

3

Il est probablement dû à l'utilisation de "~/something", probablement sur un contrôle Hyperlink. Lorsque le fichier physique se trouve à un niveau de répertoire différent de l'URL conviviale, ASP.NET utilise trop de ../'s dans l'URL relative qu'il génère, ce qui donne cette erreur. Si vous ne pouvez pas simplement utiliser une URL absolue, je crois que vous pouvez utiliser Page.ResolveUrl ("~/foo/bar") pour obtenir l'URL relative correcte.

0

Utilisez un réflecteur pour creuser dans le code URLRewriter.Net.

0

Je donnerais une fois de plus à vos chemins de réécriture et je verrais s'il y a un chemin qui contient un dossier qui n'existe pas, a été floué ou est en fait en dehors de l'application Web. Pouvez-vous poster la règle de réécriture ici?

0

Etes-vous sûr de l'erreur? Certains scripts (Code Red/Nimda) trollent sur Internet à la recherche d'une traversée d'URL qui ressemble à cette erreur.

Est-ce interne ou externe? Est-il possible que votre machine soit scannée?

0

J'ai été en mesure de résoudre ce problème en installant .NET 3.5 SP1.

1

Il suffit de définir la fonction Activer les chemins parents sur True dans les paramètres ASP à partir de votre site

qui a résolu le problème pour moi