2009-05-22 9 views
1

Voici ce que je veux faire:Lire la configuration IIS7 à partir de l'application Web?

Mon application web est très lente au début, jusqu'à ce que toutes les pages aient été précompilées et que le cache ait été rempli. Je veux «réchauffer» l'application dans Global.asax en déclenchant quelques requêtes HTTP sur les pages les plus lentes.

Le problème est que je ne sais pas sur quel port l'application s'exécute. Pourrait être 80 (mon IIS local ou le serveur déployé, 8080 sur notre serveur de test ou un port aléatoire pour certains collègues qui utilisent le serveur de développement ASP.NET)

Je pensais qu'il serait assez simple de lire la configuration Web fusionnée , extrayez la liaison, créez une URL et déclenchez la requête avec HttpWebRequest.

Cependant, je n'avais pas la chance que ce soit ... (j'ai surtout essayé WebConfigurationManager)

Toutes les idées?

Répondre

0

Si vous avez accès à l'objet Page (je ne suis pas sûr si vous le faites dans global.asax puisque je ne l'utilise jamais dans mes applications) alors vous pouvez utiliser sa méthode ResolveUrl (chemin de chaîne) pour obtenir l'URL correcte par exemple

string myurl = Page.ResolveUrl("~/MyPage.aspx"); 

Où ~/se réfère à la racine de l'application ASP.Net

+0

Je connaissais celui-là, bien que je pense qu'il donne seulement le chemin absolu sans le schéma, le nom d'hôte et le port, comme /MyApplication/MyPath.aspx. Mais si j'avais l'objet Page, Page.Request.Url ou Page.Request.RawUrl serait la chose ... Je ne suis pas sûr si Application_Start dans Global.asax est le bon endroit, je ne sais pas si ça s'appelle lorsque l'application est redémarrée ou lorsque la première demande arrive – chris166

0

Je pense que vous devriez être en mesure d'obtenir cette information de l'objet de demande. Cela dit, je me méfierais à ce sujet sans que la production prouve que c'est effectivement un problème.

+0

Non ce n'est pas vraiment un problème, et je ne poursuis pas activement le problème plus longtemps. Mais d'une manière ou d'une autre, je pense que l'application web devrait être capable de comprendre sa propre configuration IIS. Ou au moins je veux une bonne raison pour laquelle c'est interdit. – chris166