У меня есть значения по умолчанию для тестирования моего кода, но по соображениям безопасности эти значения должны быть установлены только тогда, когда мое приложение работает под ASP.NET Development Server, а не в Production. Как я могу программным образом определить, где работает мое приложение?Как узнать программно, если мое приложение работает под «ASP.NET Development Server»?
ответ
Метод состоит в том, чтобы добавить свойство к вашему конфигу, которое может быть установлено с использованием файла преобразования кодировки. В вашем web.config может быть правка «DEV». В вашем файле производственного преобразования ваш «DEV» может быть ложным. С помощью этого метода вы даже можете оценить значение, например, если вы участвуете в постановке, тестировании, предпроизводстве. Это метод, используемый для изменения строк соединения.
Файл преобразования используется для изменения различных значений в вашем config в зависимости от вашего развертывания.
Вот еще чтение: How to: Transform Web.config When Deploying a Web Application Project
Это очень плохой способ определить, работает ли ваше приложение локально или на производстве. Лучшим способом является использование значений времени выполнения web.config (с соответствующим преобразованием для режимов Debug и Release) или даже для компиляции временных условий (#if DEBUG ... #endif
).
Если на «ASP.NET сервер разработки» вы имеете в виду сервер Cassini входит в состав Visual Studio, нет поддерживаемый способ сделать это.
Вы можете либо добавить информацию в web.config, как предложили другие, либо использовать неподдерживаемую технику (в будущих версиях не будет гарантировано работать). Например. проверка
System.Environment.CommandLine
, который будет содержать «... WevDev.WebServer ...» при работе под Cassini.
Эта ссылка была действительно полезна, спасибо. –