Работа с номерами нежелательных портов на локальном хосте при отладке в Visual Studio - PullRequest
0 голосов
/ 18 марта 2010

Так что, когда я пытаюсь отладить проект в Visual Studio, у меня часто будет 1 или более сервисов, которые мне нужно вызвать. Эти сервисы являются отдельными проектами, и я буду запускать их в отдельных экземплярах VS. ASP dev server любезно запускает их с временными номерами портов. Это было бы хорошо, за исключением того, что мои программы ищут IP без подключенного порта. (Как правило, это так же просто, как «localhost»!) Я справился, используя настройки веб-конфигурации и изменив XML для использования номера порта при отладке. Это по-прежнему не всегда работает, и иногда мне все равно придется выдумывать и вставлять номера портов в виде строк в коде! UGH! Тогда я должен не забыть отменить весь код порта перед развертыванием ...

Я хочу прекратить делать это:

string _strBaseURL = String.Format("http://{0}:2277", ConfigurationManager.AppSettings["myservice_ip"].ToString());

Какая лучшая практика здесь? Обречен ли я портировать стадо при отладке VS-приложений?

Ответы [ 4 ]

2 голосов
/ 18 марта 2010

Я решил эту проблему путем разработки с использованием IIS, а не сервера разработки Visual Studio. Visual Studio развертывает все мои проекты на IIS, который находится на порте 80, поэтому у вас есть похожая среда для развертывания. Во время отладки VS подключается к IIS. Я также должен сделать это для отладки служб HTTPS.

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

1 голос
/ 18 марта 2010

У меня нет проблем. Как еще вы предлагаете клиенту угадать номер порта, который использует сервер? Может быть, вы можете создать стиль DNS «сервер поиска номера порта». Но тогда клиент не будет знать, какой порт использовать для этого сервера.

Возможно, вы можете создать файл .config как для сервера, так и для клиента, и попросить кого-нибудь убедиться, что они содержат одинаковое число. Это будет единовременная проблема при установке, они никогда не изменят номер снова.

0 голосов
/ 18 марта 2010

Обычно я решаю эту проблему, генерируя URI с помощью UriBuilder и включая номер порта, используя при необходимости app.config для назначения нужного порта + URI. Но это требует, чтобы клиентский код был под вашим контролем, поэтому ваш пробег может отличаться. (Обратите внимание, что если реальный порт равен 80, строка, сгенерированная командой, удаляет: 80, поэтому в реальном развертывании все выглядит лучше).

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

0 голосов
/ 18 марта 2010

Вы можете указать, на каком порту будет запускаться каждый проект в конфигурации проекта. Можете ли вы включить номер порта в вашу локальную конфигурацию? Похоже, вы уже делаете это с IP-адресом / URL.

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