2010-12-14 107 views
3

J'ai une configuration de site dans IIS pour fonctionner à http://localhost/WebApplication6. Dans mon application Web, j'ai un gestionnaire (implémente IHttpHandler). Lorsque j'imprime context.Request.Url.AbsolutePath, j'obtiens /WebApplication6/whaetever. Je veux couper /WebApplication6 (le nom du site local). Comment puis je faire ça? Y at-il un moyen d'obtenir le bit "WebApplication6" afin que je sache quoi couper? (à l'intérieur IHttpHandler.ProcessRequest).IIS/HttpHandler: Obtenir le chemin absolu relatif?

Répondre

4

Votre meilleur pari serait HttpRequest.AppRelativeCurrentExecutionFilePath - il fournit un chemin relatif à votre application web répertoire racine. Cependant, il sera sous la forme de "~/whatever" où ~/ indique le chemin relatif de l'application. Si votre exigence est d'obtenir /whatever alors vous pouvez supprimer ~ en utilisant des fonctions de chaîne.

BTW, voici un bon article qui vous aideront à comprendre tous les chemins: http://www.west-wind.com/weblog/posts/132081.aspx

+0

Oui, ça va faire. J'ai également découvert 'Request.ApplicationPath' qui me donne juste le bit'/WebApplication6' afin que je puisse modifier les URL de cette façon aussi. – mpen

0
VirtualPathUtility.GetDirectory(context.Request.Url.AbsolutePath) 
+0

cela ne fonctionnera pas. En fait, cela donnerait toujours une partie du répertoire, c'est-à-dire que '/ foo/bar /' donnera '/ foo /'. – VinayC