2010-06-01 6 views
0

Lorsque j'active la réécriture d'URL pour accéder à une page, le ~ no long est remplacé par la racine de l'application.IIRF avec IIS et le Tilde ASP.Net (~)

Par exemple

<asp:image runat="server" ImageUrl="~/Images/image.png"/> 

devrait produire:

<img src="/testing/Images/image.png"> 

mais sa sortie ne

<img src="/Images/image.png"> 

Le tilde est censé être remplacé par le chemin de racine de l'application, mais il semble que L'IIFF est en train de jouer avec ça?

Des idées pour résoudre ce problème?

Répondre

0

Le caractère tilde (~) représente le répertoire racine de l'application dans ASP.NET. Il est remplacé par la valeur appropriée dans les contrôles serveur ASP.Net avant d'envoyer le balisage au client. Par contre, IIRF réécrit les URL avant d'entrer dans le canal ASP.Net. Il transforme les demandes provenant des clients.

IIRF modifie demandes, alors que ASP.Net transforme le tilde dans la réponse .

Par conséquent, dans le balisage envoyé au client, vous ne devriez jamais voir un tilde.

Si vous avez un tilde dans le balisage envoyé au client, il s'agit probablement d'un bogue et vous devez modifier votre code pour le remplacer correctement.

Quelques conseils pour vous assurer le tilde sera remplacé: