SocketException в Windows Server 2003 - PullRequest
       12

SocketException в Windows Server 2003

1 голос
/ 29 января 2009

Я пытаюсь запустить приложение FTP и запустить его на Windows Server 2003, до того, как это приложение работало в Windows XP Professional без проблем. Я пытался поискать ответы, но единственный «обходной путь», который я могу найти на веб-сайте Microsoft, не устранил проблему (редактирование реестра и добавление нового поля DisableRawSecurity со значением 1 (в правильной области) Я отлаживаю это приложение в VB .Net

Исключение: была сделана попытка получить доступ к сокету способом, запрещенным его правами доступа. Как и было запрошено, здесь находится исходный код подпрограммы, с которой он столкнулся с проблемой:

Private Sub Listen()
        Try

            ListenerSocket.Bind(LocalEndPoint)
            ListenerSocket.Listen(100)
            While True 
            ListenerSocket.BeginAccept(New AsyncCallback(AddressOf AcceptCallback), ListenerSocket)
            End While
        Catch ex As System.Exception
            Stop
        End Try
        ListenerSocket.Shutdown(SocketShutdown.Both)
    End Sub

Любая помощь будет оценена.

Ответы [ 3 ]

1 голос
/ 16 февраля 2009

У вас могут быть проблемы, потому что вызов BeginAccept находится в бесконечном цикле. Вы должны вызывать это только один раз, пока не будет нажата AsyncCallback, затем снова вызовите EndAccept и BeginAccept. Поэтому, по сути, вы вызываете BeginAccept один раз, чтобы начать, а затем снова после того, как каждое соединение установлено.

0 голосов
/ 20 сентября 2009

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

0 голосов
/ 01 февраля 2009

Все в Windows имеет список контроля доступа (ACL). Мне кажется, что пользователь, запустивший ваше приложение, не имеет надлежащих разрешений в ACL, чтобы делать то, о чем вы просили. Я не уверен, как вы будете искать ACL для необработанного сокета, но именно здесь я бы начал искать.

...