2010-05-28 4 views
0

En fait c'est la version mono d'asp.net, XSP.Quel est le problème avec cette réécriture ASP.NET?

Dans ma fonction de demande de début, je vérifie l'URL et réécrit si nécessaire. Dans un cas, je fais

context.RewritePath("~/App_Data/public" + path); 

Lorsque je tente de demander des images ou tout ce que je reçois une erreur 404 au lieu du contenu. Pourquoi?

Répondre

0

Il semble que cela ne soit pas pris en charge dans le mode ATM mono. HttpContext.Rewrite est mais réécrire aux fichiers n'est pas.

0

Utiliser Fiddler pour voir la demande actuelle. Si le chemin est réécrite les images auraient probablement à référence comme un chemin absolu ..

Mais hélas je ne experince avec XSP so ....

Fiddler pour voir la demande réelle

+0

Cela n'aide pas. Ce n'est pas une redirection. C'est interne. –

0

Les images par défaut ne sont pas gérées par ASP.NET (au moins sur IIS). Êtes-vous en mesure de confirmer que les extensions d'image sont gérées par ASP.NET et ne sont pas servies directement?

Aussi, modifiez le code légèrement:

string newpath = "~/App_Data/public" + path; 
context.RewritePath(newpath); 

et vérifier la valeur de newpath pour vous assurer qu'il est un chemin bien formé. Si path n'est pas préfixé avec un délimiteur de chemin, cela peut aussi être la cause de vos malheurs.

+0

'string path = CleanPath (context.Request);' qui supprime tout après '?' Et est la valeur de uri.path. Donc, c'est toujours /whatever/andfolder/file.ext. Cela fonctionne dans le webserver studios visuels et cassini la dernière fois que j'ai vérifié. –

+0

Je n'ai jamais entendu parler de CleanPath, je ne peux pas non plus le trouver dans les bibliothèques .NET. –

+0

En quoi le code modifié diffère-t-il du code affiché dans la question? –

Questions connexes