Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Windows [игнор отключен] [закрыт для гостей] / Службы и сетевые порты / 11 сообщений из 11, страница 1 из 1
26.03.2012, 19:29
    #37724024
leon777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
Всем добрый вечер!

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

Сейчас я перенес проект из windows оконного приложения в windows службу. Порт открывается (виден в netstat), но из вне его не видно...

Подскажите пожалуйста в чем может быть проблема???
...
Рейтинг: 0 / 0
26.03.2012, 20:03
    #37724097
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
Проблема может быть в правах. Служба наверняка выполняется из под ограниченной учетки, а не из под учетки пользователя.
...
Рейтинг: 0 / 0
26.03.2012, 20:24
    #37724144
leon777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
брандмауэр...
...
Рейтинг: 0 / 0
26.03.2012, 21:20
    #37724235
Anatoly Podgoretsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
Приведи вывод netstat
...
Рейтинг: 0 / 0
27.03.2012, 17:06
    #37725798
leon777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
После настройки разрешений в брандмауэре 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.
private void button1_Click(object sender, EventArgs e)
{
     try
     {
          TcpClient client = new TcpClient("XXX.XXX.XXX.XXX", XXXX);

	  Console.WriteLn("Connect!");
     }
     catch(Exception e)
     {
	  Console.WriteLn(e.Message);
     } 
     finally
     {
          client.Close();
     }

}



OUTPUT:


Connect!
Connect!
Connect!
Connect!
SocketException Socket errorСщву = 10061 WSAECONNREFUSED


Антивирусника нет. Что может быть еще??? Тот же код в оконном варианте работает нормально, а со службой проблемы
...
Рейтинг: 0 / 0
27.03.2012, 22:12
    #37726362
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
Ну как-бы... TcpClient - это, рискну предположить, таки клиент...

Вы его пытаетесь открыть. Если в эксепшен не выволились, то считаете что законнектились, а разве это так? Я не знаком с .Net(на нем же пример кода?) но в стародавние времена(на API), было принято проверять на то, открыт ли сокет или нет.
Как то так.
Код: plaintext
1.
2.
if ((raw_socket = socket(AF_INET, SOCK_RAW, IPPROTO_IP)) == INVALID_SOCKET)
        return printf("-ERR:socket(,SOCK_RAW,) -> %d\n", WSAGetLastError());


Разве всякая неудачная попытка создания сокета приведет к эксепшену...?

Если сокет открылся, то вы его сразу закрываете. А что, по вашему, это должно произойти мгновенно? Вообще-то нет - в зависимости от того, как написан сервер. Как последствия, у сервера может заканчиваться пул соединений или типа того...

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

P.S.
Сначало изучите мат.часть(теорию) а потом уже кодить начинайте.
Может быть поможет...
...
Рейтинг: 0 / 0
27.03.2012, 22:15
    #37726371
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
Вернее, блокировать будет даже не брандауэры, а сама подсистема WinSock.
...
Рейтинг: 0 / 0
27.03.2012, 22:17
    #37726373
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
10061 - удаленный хост отверг запрос на подключение. Или Вы не понимаете смысл этой ошибки?
...
Рейтинг: 0 / 0
27.03.2012, 23:53
    #37726517
leon777
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
The Dim!


По документации конструктор TcpClient "...connects to the specified port on specified host"

Идея с отвержением подключения очень правдоподобно, НО это происходит ТОЛЬКО для службы, а когда порт открывается
win-оконным приложением (на той же машине), то я могу конектиться к порту хоть сто раз! Брандмауэр выключен, антивира нет.

Так вы говорите контроль может осуществлять сама систем WinSock? Но конект не работает только для службы!

Ну что же это может быть????
...
Рейтинг: 0 / 0
28.03.2012, 05:15
    #37726657
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
А службу-то вы от имени чего запустили? Конкретного аккаунта или системы?
...
Рейтинг: 0 / 0
28.03.2012, 08:59
    #37726749
The Dim!
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Службы и сетевые порты
leon777The Dim!


По документации конструктор TcpClient "...connects to the specified port on specified host"
Ну, и Вам перевести или что?

leon777Идея с отвержением подключения очень правдоподобно
Это не идея, а описание ошибки с указанным кодом.

leon777НО это происходит ТОЛЬКО для службы, а когда порт открывается
win-оконным приложением (на той же машине), то я могу конектиться к порту хоть сто раз! Брандмауэр выключен, антивира нет.

Так вы говорите контроль может осуществлять сама систем WinSock? Но конект не работает только для службы!

Ну что же это может быть????
Вы смешали в кучу всё -порт открывается, win-приложения, службы... коннект.

В приведенном вами примере кода у вас нету разделения моментов создания подключения(сокета) и собственно коннекта. На той-же машине -на тойже машине локальный трафик получается и идет он через loopbak интерфейс. Для удаленного хоста это конечно будет не так, со всеми вытекающими последстваиями.
...
Рейтинг: 0 / 0
Форумы / Windows [игнор отключен] [закрыт для гостей] / Службы и сетевые порты / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]