2009-05-22 3 views
1

Вот что я хочу сделать:Прочитайте конфигурацию IIS7 из веб-приложения?

Мое веб-приложение выполняется очень медленно, пока все страницы не были предварительно скомпилированы и кеш был заполнен. Я хочу «разогреть» приложение в Global.asax, вызвав несколько HTTP-запросов на самые медленные страницы.

Проблема в том, что я не знаю, к какому порту приложение работает. Может быть 80 (мой локальный IIS или развернутый сервер, 8080 на нашем тестовом сервере или какой-то случайный порт для некоторых коллег, которые используют сервер разработки ASP.NET)

Я думал, что было бы довольно просто прочитать объединенную веб-конфигурацию , извлечь привязку, создать URL-адрес и вызвать запрос с помощью HttpWebRequest.

Однако, у меня не было никакой удачи вообще ... (я в основном пытался WebConfigurationManager)

Любые идеи?

ответ

0

Если у вас есть доступ к объекту Page (я не уверен, что вы делаете в global.asax, так как я никогда не использую его в своих приложениях), вы можете использовать его метод ResolveUrl (строковый путь), чтобы получить правильный URL-адрес например

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

Где ~/относится к корню приложения ASP.Net

+0

Я знал об этом, хотя я думаю, что он дает абсолютный путь без схемы, имени хоста и порта, например /MyApplication/MyPath.aspx. Но если бы у меня был объект Page, объект Page.Request.Url или Page.Request.RawUrl был бы ... Я также не уверен, что Application_Start в Global.asax - это правильное место, я не знаю, вызвано ли оно когда приложение перезагружается или когда приходит первый запрос – chris166

0

Я думаю, что вы должны быть в состоянии получить эту информацию из объекта запроса.

Это говорит о том, что я не буду беспокоиться об этом без каких-либо серьезных доказательств из производства, что это на самом деле проблема.

+0

Нет, это не проблема, и я больше не занимаюсь этой проблемой. Но почему-то я чувствую, что веб-приложение должно быть в состоянии определить свою собственную конфигурацию IIS. Или, по крайней мере, я хочу повод, почему это запрещено. – chris166