2013-05-29 2 views
2

Я являюсь промежуточным пользователем WIX, использующим WIX 3.7 в VS2012. У меня есть несколько решений для webapps.Wix 3.7: Как установить сайт на неиспользуемый порт?

Для каждого у меня есть загрузочный блок, включающий проект MSI.

Я хочу, чтобы каждый установщик условно менял порт, исходя из того, что, если что-то уже установлено в IIS.

Другими словами: установить порт 80 по умолчанию или порт 81, если 80 используется, или 82, если 81 используется и т.д.

Я искал «WIX условно изменить порт» и обнаружил следующие сообщения

WiX 3.7 IIS Setup
Wix to Install multiple Applications

..но они, похоже, не будет совсем то, что мне нужно.

Извинения, если ответ смотрит мне в лицо, и я не вижу его.

спасибо.

+0

Другим возможным заголовком для этого вопроса будет: «Как выбрать следующий доступный порт 8 * при установке с помощью WIX 3.7?» –

ответ

0

Очевидным решением было бы перебрать все веб-сайты и виртуальные приложения на хост и проверить их номера портов.

Другой возможностью было бы перебрать все порты, начиная с 80, и проверить, доступно ли это. Я думаю, что у System.Net.NetworkInformation namespace есть некоторые полезные объекты для такого рода вещей, но у меня нет большого опыта работы с сетевыми вещами, поэтому я не могу вам помочь.

В качестве альтернативы вы можете запустить «netstat -a», чтобы получить все активные соединения и проанализировать результаты. Перенаправить вывод в текстовый файл temp может быть проще: «netstat -a> c: \ temp \ netstat.txt». Имейте в виду, что netstat несколько медленный.

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

+0

Как они сделаны из Wix 3.7? –

+0

@Andrew Из пользовательских действий. Нет встроенных функций для того, что вы делаете. – Netfangled

+0

Если это так, кажется, что вопиющее упущение не имеет «родного» тега WIX, чтобы обеспечить то, что кажется (по крайней мере для меня) очень простой функцией, которую каждый веб-сайт понадобится во время выполнения: привязка к неиспользуемому порту. Из отдела «Все легко, если вы знаете, как» - для чего это самое простое? –

0

Как уже отмечалось, эта функциональность сегодня не существует, но пользовательские действия могут быть улучшены, чтобы иметь такую ​​функцию. WiX toolset - это Open Source.

Речь идет о расширении scasched и scaexec DLL, исходный код которого можно найти в папке src \ ca \ serverca.

Смежные вопросы