Как указать порт для сайта конфигурации ASP.NET? - PullRequest
1 голос
/ 23 августа 2011

Можно ли указать постоянный порт для сайта конфигурации ASP.NET ( Средство администрирования веб-сайта )?

Мне нужно добавить ссылку на сайт конфигурации ASP.NET, но я не могу из-за изменения порта при каждом запуске.

ASP.NET Configuration menu item

Ответы [ 2 ]

1 голос
/ 23 августа 2011

Я не уверен, что вы можете.

Инструмент администрирования веб-сайта на самом деле не предназначен для "привязки" к нему, это довольно мощное, незащищенное приложение, которое на самом деле предназначено для запуска только разработчиком / администратором.

В разделе «Соображения» документации объясняется, почему:

В следующих разделах приведены некоторые рекомендации по работе с инструментом администрирования веб-сайта.

Перезапуск приложения при сохранении

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

Сохранение настроек

Большинство изменений параметров конфигурации, которые вы вносите в Инструмент администрирования веб-сайта, вступают в силу немедленно. Для параметров, для которых в интерфейсе инструмента администрирования веб-сайта есть специальная кнопка «Сохранить», оставление инструмента администрирования веб-сайта в режиме ожидания или тайм-аут инструмента администрирования веб-сайта до нажатия кнопки «Сохранить» приведет к потере изменений параметров конфигурации.

Тайм-аут

В качестве меры безопасности по истечении определенного периода бездействия средство администрирования веб-сайта. Любые настройки, которые не вступили в силу немедленно и не были сохранены, будут потеряны. Если время работы инструмента администрирования веб-сайта истекло, закройте браузер и снова откройте инструмент администрирования веб-сайта в новом окне.

Средство администрирования веб-сайта управляет только некоторыми параметрами конфигурации, доступными для веб-сайта. Многие другие параметры требуют прямого изменения файлов конфигурации либо вручную, с помощью оснастки MMC для ASP.NET, либо программно, с помощью API конфигурации ASP.NET.

Из этого вы можете видеть, что это не то, что предназначено для хранения.

Тем не менее, немного взломав, возможно, вы могли бы выстрелить себе в ногу добиться того, что вы хотите:

Если щелкнуть правой кнопкой мыши элемент панели задач сервера разработки ASP.NET для инструмента администрирования и выбрать «Показать подробности», вы увидите, что виртуальный каталог, в котором работает инструмент, сопоставлен (что-то вроде):

C:\Windows\Microsoft.NET\Framework\v4.0.30319\asp.netwebadminfiles\

Если бы вы создавали (и защищали) виртуальный каталог в вашем приложении, сопоставленный с этим путем, вы вполне могли бы получить все это и работать как вам угодно.


Как указывает псевдокодер в своем комментарии ниже, хотя при переходе по маршруту виртуального каталога «работает», существуют некоторые ограничения для инструмента, которые в сочетании с проблемами безопасности означают, что вы, вероятно, не захотите Я не хочу использовать это в будущем.

Если вы будете придерживаться опции «Сервер разработки», инструмент не будет отвечать на нелокальные запросы, и как только вы развернете сайт на соответствующем веб-сервере (IIS) для пользователей, чтобы получить доступ к сайту администратора, выиграл все равно не будет работать.

Вероятно, было бы лучше, если бы вы могли объяснить, почему вы хотите использовать это постоянно, чтобы мы могли проконсультировать вас по некоторым лучшим вариантам - например, поставщики Membership, Profile и Role предоставляют хорошие API для управления пользовательскими данными, которые могут быть легко встроенный в пользовательскую область администратора.


Сложно, но я думаю, что для правильной работы вам придется потратить некоторое время на выполнение чего-то , и вам, вероятно, лучше в конечном итоге потратить это время на выполнение Правильнее, чем взламывать неправильный вариант.

Сервер разработки может быть запущен из командной строки, используя команды в соответствии с:

call "C:\Program Files\Microsoft Visual Studio 9.0\vc\vcvarsall.bat"
"C:\Program Files\Common Files\Microsoft Shared\DevServer\9.0\WebDev.WebServer.exe" /port:3900 /path:"PATHSITE" /vpath:"PathSite"
  1. В первой строке настраивается экземпляр CMD для использования переменных и параметров пути, необходимых для запуска большинства инструментов Dev
  2. Вы захотите изменить путь к DevServer в соответствии с вашей средой (например, у меня в \ 10.0 \ и имеет версии 2.0 и 4.0).

Вооружившись этой информацией, вы можете сделать что-то вроде:

  • Добавьте ссылку на свой сайт на страницу с именем /StartAdmin.aspx или аналогичной.
  • На этой странице вам потребуется логика для:
    • Проверьте запущенные процессы на наличие экземпляра DevServer, который ранее использовался для размещения сайта администратора.
    • Закройте этот процесс.
    • Создайте еще один экземпляр DevServer с известным портом, указав путь к сайту WebAdmin.
    • Перенаправить пользователя на этот новый сайт.

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

Однако это, вероятно, займет столько же времени, как и быстрый набор пользовательских экранов администратора, и вы узнаете что-то более полезное на этом пути *

* Нельзя сказать, что изучение того, как начинать и оставлять запуск процесса, бесполезно, это скорее означает, что я предполагаю, что это не то, что вы должны изучать в данный момент, и вы вероятно, следует сосредоточиться на этом;)

1 голос
/ 23 августа 2011

Это порт для сервера разработки ASP.NET

http://msdn.microsoft.com/en-us/library/ms178109.aspx

...