|
|
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
Всем добрый вечер! У меня работала программа в виде windows оконного приложения, которая открывала сетевой порт и по нему осуществлялось взаимодействие с удаленными устройствами. Сейчас я перенес проект из windows оконного приложения в windows службу. Порт открывается (виден в netstat), но из вне его не видно... Подскажите пожалуйста в чем может быть проблема??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 19:29 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
Проблема может быть в правах. Служба наверняка выполняется из под ограниченной учетки, а не из под учетки пользователя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 20:03 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
брандмауэр... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 20:24 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
Приведи вывод netstat ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2012, 21:20 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
После настройки разрешений в брандмауэре Windows server 2008 проблема разрешилась частично. Раньше (когда порт блокировался брандмауэром) при попытке коннекта к порту была ошибка SocketException errorCode = 10060 - истек таймаут... А сейчас, когда брандмауэр разрешает коннект к порту (или вообще вырублен) я могу несколько раз подключится к порту, но потом все равно ошибка: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. OUTPUT: Connect! Connect! Connect! Connect! SocketException Socket errorСщву = 10061 WSAECONNREFUSED Антивирусника нет. Что может быть еще??? Тот же код в оконном варианте работает нормально, а со службой проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2012, 17:06 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
Ну как-бы... TcpClient - это, рискну предположить, таки клиент... Вы его пытаетесь открыть. Если в эксепшен не выволились, то считаете что законнектились, а разве это так? Я не знаком с .Net(на нем же пример кода?) но в стародавние времена(на API), было принято проверять на то, открыт ли сокет или нет. Как то так. Код: plaintext 1. 2. Разве всякая неудачная попытка создания сокета приведет к эксепшену...? Если сокет открылся, то вы его сразу закрываете. А что, по вашему, это должно произойти мгновенно? Вообще-то нет - в зависимости от того, как написан сервер. Как последствия, у сервера может заканчиваться пул соединений или типа того... Если часто открывать/закрывать сокеты, то это сильно смахивает на сканирование хоста - одна из причин, по которой брандмауэр может блокировать соединение. P.S. Сначало изучите мат.часть(теорию) а потом уже кодить начинайте. Может быть поможет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2012, 22:12 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
Вернее, блокировать будет даже не брандауэры, а сама подсистема WinSock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2012, 22:15 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
10061 - удаленный хост отверг запрос на подключение. Или Вы не понимаете смысл этой ошибки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2012, 22:17 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
The Dim! По документации конструктор TcpClient "...connects to the specified port on specified host" Идея с отвержением подключения очень правдоподобно, НО это происходит ТОЛЬКО для службы, а когда порт открывается win-оконным приложением (на той же машине), то я могу конектиться к порту хоть сто раз! Брандмауэр выключен, антивира нет. Так вы говорите контроль может осуществлять сама систем WinSock? Но конект не работает только для службы! Ну что же это может быть???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2012, 23:53 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
А службу-то вы от имени чего запустили? Конкретного аккаунта или системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 05:15 |
|
||
|
Службы и сетевые порты
|
|||
|---|---|---|---|
|
#18+
leon777The Dim! По документации конструктор TcpClient "...connects to the specified port on specified host" Ну, и Вам перевести или что? leon777Идея с отвержением подключения очень правдоподобно Это не идея, а описание ошибки с указанным кодом. leon777НО это происходит ТОЛЬКО для службы, а когда порт открывается win-оконным приложением (на той же машине), то я могу конектиться к порту хоть сто раз! Брандмауэр выключен, антивира нет. Так вы говорите контроль может осуществлять сама систем WinSock? Но конект не работает только для службы! Ну что же это может быть???? Вы смешали в кучу всё -порт открывается, win-приложения, службы... коннект. В приведенном вами примере кода у вас нету разделения моментов создания подключения(сокета) и собственно коннекта. На той-же машине -на тойже машине локальный трафик получается и идет он через loopbak интерфейс. Для удаленного хоста это конечно будет не так, со всеми вытекающими последстваиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2012, 08:59 |
|
||
|
|

start [/forum/topic.php?fid=26&msg=37724235&tid=1496949]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
166ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 491ms |

| 0 / 0 |
