Обнаружение сервера веб-хостинга - PullRequest
0 голосов
/ 29 апреля 2010

У меня есть веб-приложение, использующее фреймворк 3.5. Я хотел узнать, как я могу определить, какой веб-хост отображает страницу.

Если сервер является локальным, отправьте уведомление по электронной почте test@dev.com Если сервер QA, отправьте письмо на xyz@dev.com

Спасибо

Ответы [ 3 ]

1 голос
/ 08 марта 2011

Класс System.Web.HttpRequest имеет свойство IsLocal , которое говорит именно об этом. Это немного более надежно, чем использование серверных переменных, поскольку оно проверяет наличие таких вещей, как «127.0.0.1».

1 голос
/ 29 апреля 2010

Самое близкое, что вы, вероятно, получите с тем, что вам нужно, это имя машины:

System.Environment.MachineName

localhost - это адрес, и каждая машина может получить к нему доступ через себя (при условии, что кто-то не связывался сфайл hosts).

Вы можете получить URL для доступа к странице: Request.Url.AbsoluteUri.Это, скорее всего, скажет вам, в какую среду они пытаются попасть (кроме случаев, когда они используют локальный хост для доступа к сайту).

Если сервер является локальным, отправьте уведомление по электронной почте test @ dev.com Если сервер QA, отправьте электронное письмо по адресу xyz@dev.com

Если у вас есть доступ к конфигурации компьютера, проще было бы разместить адрес электронной почты в настройках приложения вы хотите отправлять туда письма.Таким образом, вы можете изменять его в зависимости от среды и не беспокоиться о том, на какую машину / URL они пытаются попасть.

0 голосов
/ 29 апреля 2010

Если вы хотите выполнить это обнаружение на стороне сервера, тогда как насчет устаревших ServerVariables?

string serverName = Request.ServerVariables["SERVER_NAME"];
string httpHost = Request.ServerVariables["HTTP_HOST"];

Полный список серверных переменных находится здесь: http://www.aspcode.net/List-of-RequestServerVariables.aspx

...