Можно, но это дорого.
Вам нужно, чтобы DNS был предоставлен другой службой или выделенным DNS-сервером.
У вас должен быть выделенный сервер, на котором работает база данных SQL Server, и ничего больше.
Вам необходимо использовать одобренное PCI программное обеспечение.
Ваш сервер базы данных должен находиться в том же центре обработки данных, что и ваш веб-сервер, иначе у вас будет низкая производительность.
Поэтому лучше либо разместить свой сайт на безопасном хосте PCI, либо настроить свои серверы, как я описал.
Кстати, если вы используете аналоговые телефоны для внутренних номеров, протестируйте с ними эхо. Некоторые аналоговые простые телефоны генерируют очень много эха на противоположной стороне разговора VoIP.
вы запускаете событие перед сборкой, чтобы заменить веб-конфигурацию другой конфигурацией на диске с добавлением имени конфигурации решения к имени файла. Например, у меня есть web.config.release, web.config.debug и даже web.config.neilathome.Затем я использую те же самые методы для условных фрагментов кода, создавая частичные классы и помещая то, что меняет между моими конфигурациями решений в их собственных файлах. Например, у меня есть sync_timersettings.cs, который является частичным классом, содержащим несколько констант, которые определяют, как часто мой код обновления вызывает веб-службу. Или вы можете просто поместить все свои настройки в файл app.settings и сделать это таким образом.
Я считаю это очень гибким решением, оно позволяет мне заменять фрагменты javascript и css, и если у вас есть время, чтобы помещать вещи, которые изменяются между конфигурациями, в их собственные файлы, вы, вероятно, можете перейти в состояние, в котором вы можете выполнять отладку в конфигурации отладочного решения, а затем переключиться на выпуск и развертывание одним щелчком мыши.
Еще одно примечание:
#if DEBUG
pnlDebugIncludes.visible = true
#else
pnlReleaseIncludes.visible = true
#endif
Ответы на комментарии:
Это полезно, только если у вас есть конфигурация решения для отладки и еще одна конфигурация, которая является вашим оперативным развертыванием. Это не будет работать, когда у вас (как и я) есть конфигурация решения staging, release и neilonhislaptop, поскольку символ DEBUG устанавливается только тогда, когда у вас включена отладка. Чтобы решить эту проблему, перейдите на страницу свойств вашего веб-приложения и на вкладке сборки введите условный символ для каждой конфигурации сборки. IE, установите конфигурацию сборки на выпуск и поместите «выпуск» в поле условного символа на этой вкладке. Затем сделайте то же самое для разных конфигураций сборки, поле условного символа там автоматически изменится в зависимости от конфигурации вашей сборки. Тогда директивы условной компиляции #if будут работать должным образом.
Байярд попросил предоставить дополнительную информацию о том, как использовать это для изменения разметки между конфигурациями. Ну, вы могли бы использовать для замены всей страницы .aspx - есть home.aspx.release и home.aspx.debug, но это означало бы, что вам пришлось бы повторять много разметки в каждом файле. Мое решение - добавить в приложение частичный класс. Например, на моей странице ViewImage есть следующее определение класса:
public partial class ViewImage : System.Web.UI.Page
.. поэтому я создал несколько файлов классов с той же подписью и назвал их ViewImage_titleset.cs.debug и ViewImage_titleset.cs.staging:
namespace Website
{
public partial class ViewImage : System.Web.UI.Page
{
public void SetTitle()
{
Page.Title = "Running in debug mode";
}
}
}
и
namespace Website
{
public partial class ViewImage : System.Web.UI.Page
{
public void SetTitle()
{
Page.Title = "Running in staging mode";
}
}
}
.. вызов SetTitle в событии загрузки страницы для ViewImage изменил заголовок в зависимости от того, какая конфигурация сборки была на месте. Это будет работать только в том случае, если вы изменяете страницу программно.
Лучше использовать метод условной компиляции, описанный выше, для изменения кода, подобного этому, и зарезервировать метод подкачки файлов для изменения файлов без кода, таких как изображения или web.configs . Только убедитесь, что вы не настроили альтернативные файлы для развертывания при публикации.
I just tried this in my Master page in my ASP.NET MVC project and it worked. If in DEBUG mode I use the development version of jQuery and if not in DEBUG mode, I use the minified version of jQuery:
<head runat="server">
<% #if DEBUG %>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.js") %>"></script>
<% #else %>
<script type="text/javascript" src="<%= Url.Content("~/Scripts/jquery.min.js") %>"></script>
<% #endif %>
</head>
Что касается файлов JS, то я использую Проекты веб-развертывания для предварительной компиляции веб-приложения. После завершения сборки, если конфигурация - Release, я минимизирую файлы JS и заменяю файлы в выходном каталоге. Все это делается с помощью MSBuild , поскольку проекты веб-развертывания представляют собой файлы MSBuild.
Все это делается с помощью MSBuild , поскольку проекты веб-развертывания представляют собой файлы MSBuild. Все это делается с помощью MSBuild , поскольку проекты веб-развертывания представляют собой файлы MSBuild.