2008-11-24 3 views
0

J'ai une application dans laquelle HttpRuntime.AppDomainAppPath renvoie le chemin correct avec le mauvais boîtier.Pourquoi HttpRuntime.AppDomainAppPath renvoie-t-il le chemin avec un boîtier incorrect?

J'essaie alors d'utiliser ceci dans un String.Replace et il ne trouve pas le chemin dans le nom de fichier en raison de l'enveloppe. Je suis conscient que je peux utiliser Regex.Replace mais je préférerais ne pas le faire.

J'ai ce problème uniquement sur la machine de production même si le dossier en question a le même boîtier en dev.

Je viens de remarquer que Server.MapPath renvoie également le mauvais boîtier.

Des idées?

Répondre

1

Apparemment, le problème est survenu dans le répertoire du site étant précisé avec le mauvais boîtier dans IIS. Changer simplement le répertoire personnel n'aide pas le problème car ces valeurs sont déjà définies dans la métabase et, comme les fenêtres ne sont pas sensibles à la casse, elles ne corrigent pas la métabase lorsque vous la corrigez dans l'interface graphique.

J'ai fini par supprimer le site et l'ajouter de nouveau puisqu'il n'est pas encore utilisé. J'aurais probablement pu changer complètement le nom du répertoire et changer aussi bien l'emplacement dans l'interface graphique.

0

Quelques choses:

Si vous ne se soucient pas de boîtier, utilisez .ToUpper ou .ToLower, et remplacer à ce sujet.

Dim path As String = HttpRuntime.AppDomainAppPath.ToUpper 
Dim newpath As String = Replace(path, "fnd", "rplc") 

Si ce n'est pas une option, essayez de changer la méthode de comparaison dans votre fonction de remplacement.

Vous n'avez pas spécifié de langue, donc je ne peux pas donner un exemple spécifique.

0

Pourquoi ne pas normalisent que les deux chaînes en minuscules -

string newpath = somepath.Replace(s1.ToLower(), s2.ToLower()); 
Questions connexes