Я пытаюсь опубликовать программное обеспечение на FTP-сайте с сообществом Visual Studio (VS) 2015. В окне вывода отображается ошибка

Произошла ошибка при попытке перечислить содержимое папки ''. Произошла неизвестная ошибка WinINet (код 12113).

После некоторого поиска в Google это показывает, что эта проблема вызвана брандмауэром.

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

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

Я не изменил вручную или заведомо никаких настроек в Брандмауэре.

Как мне постоянно разрешить FTP-доступ из VS2015?

редактировать

В каждом профиле (Домен, Личный и общедоступный) все настроено для разрешения исходящих соединений. Все входящие заблокированы по умолчанию.

Если я сделаю так, чтобы только Домен разрешал входящие / исходящие (и другие 2 профиля остаются по умолчанию), ничего не меняется. Если я затем сделаю общедоступным разрешение на входящие / исходящие (и другие 2 профиля остаются по умолчанию), ничего не изменится. НО ... если я сделаю Private разрешить входящий / исходящий (и другие 2 профиля по умолчанию), то это работает.

Естественно, я не хочу оставлять личный профиль просто «открытым», как это.

2 ответа2

2

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

Снимок экрана настроек публикации

Изменение параметров брандмауэра не является подходящим решением, поскольку оно не переносимо. Пассивный режим есть.

0

Вам нужно будет разрешить исходящий доступ к порту 21 для загрузки на FTP-сайты.

Из консоли брандмауэра Windows

select outbound rules -> next
new rule -> next
selec port rule -> next
Select rule applies to TCP and specify the remote port 21 -> next
Select Allow the connection -> next
Select the appropriate profile for your current network (domain, private, public) -> next
Give a the rule a name

РЕДАКТИРОВАТЬ:

По этой ссылке вы можете настроить открытие FTP, выполнив в командной строке с повышенными правами следующие команды:

netsh advfirewall firewall add rule name = "FTP Service" action = allow service = протокол ftpsvc = TCP dir = in

netsh advfirewall установить глобальное StatefulFTP отключить

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .